@ynput/ayon-frontend-shared 0.4.1 → 0.4.3
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 +37 -201
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +252 -512
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Slicer.cjs.js +1 -1
- package/dist/Slicer.es.js +31 -233
- package/dist/Slicer.es.js.map +1 -1
- package/dist/_virtual/index.cjs22.js +1 -1
- package/dist/_virtual/index.cjs23.js +1 -1
- package/dist/_virtual/index.cjs24.js +1 -1
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.es22.js +3 -3
- package/dist/_virtual/index.es23.js +5 -5
- package/dist/_virtual/index.es24.js +5 -5
- package/dist/_virtual/index.es4.js +2 -5
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es5.js +5 -2
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es6.js +2 -2
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +446 -445
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +83 -82
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +43 -130
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
- package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
- package/dist/shared/node_modules/react-is/index.es.js +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +85 -27
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +126 -64
- 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/actions/getActions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/actions/getActions.es.js.map +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.map +1 -1
- package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.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 +55 -151
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
- package/dist/shared/src/api/queries/addons/updateAddons.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/addons/updateAddons.es.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +1 -1
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +36 -36
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +58 -113
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/patchDetailsPanel.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 +67 -118
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.es.js +40 -95
- package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +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.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.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 +68 -119
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js +73 -128
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/updateLinks.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 +229 -282
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/products/getFolderProducts.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/products/getFolderProducts.es.js.map +1 -1
- package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +80 -134
- package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.es.js +95 -152
- package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/system/getSystem.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 +88 -141
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- 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 +30 -80
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/getViews.es.js.map +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.map +1 -1
- package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -1
- package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +28 -30
- package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +29 -125
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
- package/dist/shared/src/components/Chips/Chips.cjs.js +12 -6
- package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
- package/dist/shared/src/components/Chips/Chips.es.js +69 -62
- package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +3 -3
- package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +16 -310
- package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
- package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js +5 -5
- package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js.map +1 -1
- package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js +49 -145
- package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +45 -141
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +30 -166
- 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 +9 -195
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +5 -200
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +18 -114
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +13 -109
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +11 -316
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +23 -119
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +0 -111
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.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 +12 -314
- 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 +86 -273
- 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 +34 -335
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
- package/dist/shared/src/components/EntityPath/EntityPath.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPath/EntityPath.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 +15 -310
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -1
- package/dist/shared/src/components/EnumEditor/EnumEditorItem.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 +89 -293
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js +2 -2
- package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js.map +1 -1
- package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js +10 -106
- package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js.map +1 -1
- package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js +1 -1
- package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js.map +1 -1
- package/dist/shared/src/components/InfoMessage/InfoMessage.es.js +6 -5
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
- 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 +51 -346
- 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 +7 -212
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +2 -205
- 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 -185
- 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 +48 -343
- 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 +20 -316
- 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 +74 -373
- package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +16 -315
- 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 +48 -346
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +134 -304
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +78 -371
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -299
- 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 +34 -334
- 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 +30 -331
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +5 -5
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +77 -372
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +114 -309
- 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 +66 -365
- 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 +14 -316
- 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 +70 -72
- 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 +24 -326
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +335 -534
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +7 -7
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +29 -329
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +4 -4
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +53 -355
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +95 -394
- 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 +39 -8
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
- package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +2 -2
- package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -1
- package/dist/shared/src/components/SyncButton/SyncButton.es.js +52 -165
- package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +3 -3
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +35 -334
- 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 +26 -122
- 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 +22 -118
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +13 -13
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +99 -300
- 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 +61 -262
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -1
- package/dist/shared/src/config/plannerFeatures.es.js.map +1 -1
- package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -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 +6 -210
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionIcon.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionIcon.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 +51 -250
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.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 +20 -323
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.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 +151 -334
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +3 -3
- 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 +27 -329
- 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 +39 -236
- 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 +65 -255
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +16 -317
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +61 -354
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +20 -116
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +2 -306
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js +51 -147
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -202
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +9 -9
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -320
- 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 +13 -217
- 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 +22 -323
- 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 +27 -307
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.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 +10 -106
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -209
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +74 -373
- 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 +20 -324
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +6 -6
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +32 -338
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +3 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +12 -318
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +11 -107
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +23 -228
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +27 -123
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.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 +65 -245
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.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 -309
- 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 +145 -421
- 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 +18 -317
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -120
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +42 -331
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.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 +227 -372
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +38 -341
- 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 +22 -324
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +9 -105
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +21 -324
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +16 -26
- package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js +14 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js +2 -15
- package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +62 -361
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +57 -356
- 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 +14 -310
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +34 -238
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +24 -18
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js +26 -25
- package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +67 -163
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +18 -8
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +10 -106
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +13 -109
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.es.js +115 -284
- 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 +56 -177
- 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 +46 -343
- package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableWidgets.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableWidgets.es.js.map +1 -1
- package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.es.js.map +1 -1
- package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js +3 -3
- package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js.map +1 -1
- package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js +170 -459
- package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js.map +1 -1
- package/dist/shared/src/containers/NewEntity/components/TypeEditor.cjs.js.map +1 -1
- package/dist/shared/src/containers/NewEntity/components/TypeEditor.es.js.map +1 -1
- package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js +1 -1
- package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js +117 -314
- package/dist/shared/src/containers/NewEntity/context/NewEntityContext.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 +613 -883
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +6 -0
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +14 -8
- 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 +289 -413
- 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 +75 -375
- 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 +32 -204
- 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 +38 -124
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +7 -7
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +35 -131
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/constants.es.js +6 -3
- package/dist/shared/src/containers/ProjectTreeTable/constants.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +97 -292
- 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 +243 -441
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +156 -330
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -208
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +120 -420
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.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 +71 -245
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +83 -179
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -317
- 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 +59 -233
- 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 +74 -248
- 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 +147 -439
- 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 +23 -197
- 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 +32 -206
- 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 +32 -332
- 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 +135 -335
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.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 +29 -203
- 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 +36 -204
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.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 +78 -282
- 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 +31 -232
- 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 +24 -198
- 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 +43 -217
- 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 +167 -467
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +41 -215
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +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.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +14 -315
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +5 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +159 -441
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +5 -5
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +40 -332
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js +9 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js +47 -31
- package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +28 -9
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +58 -39
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js +22 -194
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +53 -25
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +150 -103
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +9 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +66 -57
- package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +3 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +52 -348
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +5 -5
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +77 -364
- 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 +28 -202
- 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 +37 -333
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +5 -5
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +130 -424
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +19 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +119 -196
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -108
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.cjs.js +6 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.es.js +11 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.es.js.map +1 -0
- 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 +20 -217
- 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 +231 -527
- 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 +69 -367
- package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +2 -2
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +18 -318
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +2 -2
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +24 -328
- 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 +69 -370
- 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 +27 -228
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js +34 -236
- package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.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 +5 -309
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.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 +7 -311
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js +11 -314
- package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +13 -316
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +34 -338
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +11 -316
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +72 -368
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +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.map +1 -1
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +24 -120
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.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 +35 -336
- 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 +55 -354
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +40 -335
- 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 +89 -287
- 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 +17 -113
- 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 +45 -141
- 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.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.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 +22 -216
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
- package/dist/shared/src/containers/Views/types.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/types.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/generateWorkingView.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 +47 -46
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonContext.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +19 -115
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DeleteEntitiesContext.cjs.js +1 -1
- package/dist/shared/src/context/DeleteEntitiesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DeleteEntitiesContext.es.js +1 -1
- package/dist/shared/src/context/DeleteEntitiesContext.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 +66 -362
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/EntityUpdatesContext.cjs.js +1 -1
- package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/EntityUpdatesContext.es.js +61 -358
- package/dist/shared/src/context/EntityUpdatesContext.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 +42 -344
- 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 +1 -1
- 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 +26 -231
- package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- 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 +23 -324
- package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +1 -1
- package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ThumbnailUploaderContext.es.js +17 -21
- package/dist/shared/src/context/ThumbnailUploaderContext.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 +2 -2
- 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 +28 -229
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -208
- package/dist/shared/src/hooks/useEntityUpdate.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 +11 -314
- 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 +30 -333
- package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +19 -115
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.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 +6 -212
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +1 -1
- package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
- package/dist/shared/src/util/buildHierarchicalTableRows.es.js +36 -33
- package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
- package/dist/shared/src/util/checkName.cjs.js.map +1 -1
- package/dist/shared/src/util/checkName.es.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
- package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
- package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
- package/dist/shared/src/util/getBundleMode.cjs.js +1 -1
- package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -1
- package/dist/shared/src/util/getBundleMode.es.js +16 -112
- package/dist/shared/src/util/getBundleMode.es.js.map +1 -1
- package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
- package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
- package/dist/shared/src/util/getPriorityOptions.cjs.js.map +1 -1
- package/dist/shared/src/util/getPriorityOptions.es.js.map +1 -1
- package/dist/shared/src/util/iconUtils.cjs.js.map +1 -1
- package/dist/shared/src/util/iconUtils.es.js.map +1 -1
- package/dist/shared/src/util/mentionTypeOptions.cjs.js +2 -0
- package/dist/shared/src/util/mentionTypeOptions.cjs.js.map +1 -0
- package/dist/shared/src/util/mentionTypeOptions.es.js +16 -0
- package/dist/shared/src/util/mentionTypeOptions.es.js.map +1 -0
- package/dist/shared/src/util/parseFilename.cjs.js +2 -0
- package/dist/shared/src/util/parseFilename.cjs.js.map +1 -0
- package/dist/shared/src/util/parseFilename.es.js +8 -0
- package/dist/shared/src/util/parseFilename.es.js.map +1 -0
- package/dist/shared/src/util/uriUtils.cjs.js.map +1 -1
- package/dist/shared/src/util/uriUtils.es.js.map +1 -1
- package/dist/types/api/base/index.d.ts +1 -1
- package/dist/types/api/generated/graphql.d.ts +76 -2
- package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
- package/dist/types/api/queries/activities/getActivities.d.ts +32 -2
- package/dist/types/api/queries/activities/getCategories.d.ts +1 -1
- package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +1 -1
- package/dist/types/api/queries/entities/getEntity.d.ts +16 -1
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +16 -1
- package/dist/types/api/queries/entities/updateEntity.d.ts +16 -1
- package/dist/types/api/queries/entityLists/getLists.d.ts +319 -305
- package/dist/types/api/queries/overview/getOverview.d.ts +49 -18
- package/dist/types/api/queries/project/getProject.d.ts +76 -61
- package/dist/types/api/queries/system/getSystem.d.ts +1 -1
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +16 -1
- package/dist/types/api/queries/users/getUsers.d.ts +16 -1
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +32 -2
- package/dist/types/api/queries/views/getViews.d.ts +1 -1
- package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +1 -1
- package/dist/types/components/Menu/Menu.d.ts +1 -1
- package/dist/types/components/Menu/MenuList.d.ts +1 -1
- package/dist/types/components/Powerpack/PowerpackButton.d.ts +1 -1
- package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +1 -1
- package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -2
- package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +1 -1
- package/dist/types/components/RemotePage/ProjectPageRemote.d.ts +1 -1
- package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +4 -2
- package/dist/types/components/RenameForm/RenameForm.d.ts +1 -1
- package/dist/types/components/ReviewablesList/SortableReviewableCard.d.ts +1 -1
- package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +2 -2
- package/dist/types/components/ReviewablesSelector/Card.d.ts +1 -1
- package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +1 -1
- package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
- package/dist/types/components/SettingsPanel/SettingsPanel.d.ts +1 -1
- package/dist/types/components/SubtasksManager/SubtasksManagerWrapper.d.ts +4 -1
- package/dist/types/components/SyncButton/SyncButton.d.ts +1 -1
- package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +1 -2
- package/dist/types/config/plannerFeatures.d.ts +1 -1
- package/dist/types/config/powerpackFeatures.d.ts +1 -1
- package/dist/types/containers/Actions/Actions.d.ts +2 -2
- package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +1 -1
- package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +2 -2
- package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.d.ts +2 -2
- package/dist/types/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.d.ts +3 -3
- package/dist/types/containers/DetailsPanel/containers/DetailsPanelSubtasks.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/helpers/getEntityPathData.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/hooks/useGetEntityPath.d.ts +1 -1
- package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +1 -1
- package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
- package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +1 -1
- package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +1 -1
- package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
- package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +1 -1
- package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.styled.d.ts +1 -1
- package/dist/types/containers/Feed/components/CommentInput/modules/index.d.ts +1 -1
- package/dist/types/containers/Feed/components/CommentInput/quillFormats.d.ts +1 -0
- package/dist/types/containers/Feed/components/CommentInput/types.d.ts +1 -12
- package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +1 -1
- package/dist/types/containers/Feed/context/FeedContext.d.ts +1 -1
- package/dist/types/containers/Feed/helpers/buildBackendFilter.d.ts +1 -0
- package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +1 -1
- package/dist/types/containers/Feed/mentionHelpers/getMentionTasks.d.ts +1 -1
- package/dist/types/containers/Feed/mentionHelpers/getMentionUsers.d.ts +1 -1
- package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -2
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/constants.d.ts +3 -0
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -3
- package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +4 -5
- package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +2 -2
- package/dist/types/containers/ProjectTreeTable/hooks/useMoveEntities.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +6 -5
- package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/widgets/NameWidget.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/widgets/SubtasksWidget.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/widgets/wrapMode.d.ts +2 -0
- package/dist/types/containers/Slicer/components/Slicer.d.ts +2 -2
- package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +1 -1
- package/dist/types/containers/Slicer/context/SlicerContext.d.ts +3 -4
- package/dist/types/containers/Slicer/hooks/useEntityListsSlice.d.ts +1 -1
- package/dist/types/containers/Slicer/hooks/useHierarchyContextMenuItems.d.ts +3 -3
- package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -1
- package/dist/types/containers/Slicer/hooks/useSlicerCounts.d.ts +1 -1
- package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +1 -1
- package/dist/types/containers/Slicer/types.d.ts +1 -1
- package/dist/types/containers/Views/context/ViewsContext.d.ts +1 -0
- package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +1 -1
- package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +1 -1
- package/dist/types/containers/Views/types.d.ts +1 -1
- package/dist/types/context/AddonContext.d.ts +1 -1
- package/dist/types/context/AddonProjectContext.d.ts +2 -2
- package/dist/types/context/DetailsPanelContext.d.ts +2 -2
- package/dist/types/context/SubtasksModulesContext.d.ts +1 -1
- package/dist/types/hooks/useHierarchyTable.d.ts +1 -1
- package/dist/types/util/buildHierarchicalTableRows.d.ts +3 -1
- package/dist/types/util/columnConfigConverter.d.ts +1 -1
- package/dist/types/util/getBundleMode.d.ts +1 -1
- package/dist/types/util/getGroupByDataType.d.ts +1 -1
- package/dist/types/util/index.d.ts +2 -0
- package/dist/types/util/mentionTypeOptions.d.ts +12 -0
- package/dist/types/util/parseFilename.d.ts +1 -0
- package/dist/types/util/uriUtils.d.ts +1 -1
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +24 -20
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
- package/dist/shared/src/components/ThumbnailSimple/index.cjs.js +0 -2
- package/dist/shared/src/components/ThumbnailSimple/index.cjs.js.map +0 -1
- package/dist/shared/src/components/ThumbnailSimple/index.es.js +0 -6
- package/dist/shared/src/components/ThumbnailSimple/index.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnStats.cjs.js","sources":["../../../../../../src/api/queries/columnStats/columnStats.ts"],"sourcesContent":["import { ColumnStats } from '@shared/api/generated'\n// Shape of the backend GraphQL `ColumnStats` (connection.fieldStats).\n// `sum` and `distribution` are typed ahead of backend support so wiring them is a no-op.\nexport interface FieldStats extends ColumnStats {\n primaryCount?: number | null\n secondaryCount?: number | null\n}\n\nconst snakeToCamel = (s: string): string => s.replace(/_([a-z0-9])/g, (_, c) => c.toUpperCase())\n\n// Per-entity \"type\" columns all map to the unified `subType` column in the table.\n// (`product_base_type` is a separate column — productBaseType — so not aliased.)\nconst COLUMN_ALIASES: Record<string, string> = {\n task_type: 'subType',\n folder_type: 'subType',\n product_type: 'subType',\n}\n\n// Canonical frontend column id for a backend column name. Attribute columns keep\n// their `attrib_` form; everything else is snake_case on the backend but camelCase\n// in the table (product_base_type → productBaseType, created_at → createdAt).\nexport const canonicalColumnId = (name: string): string => {\n if (name in COLUMN_ALIASES) return COLUMN_ALIASES[name]\n if (name.startsWith('project_attributes_')) {\n return 'attrib_' + name.slice('project_attributes_'.length)\n }\n if (name.startsWith('inherited_attributes_')) {\n return 'attrib_' + name.slice('inherited_attributes_'.length)\n }\n if (name.startsWith('attrib_')) return name\n return snakeToCamel(name)\n}\n\n// list_of_strings attrs arrive as one bucket keyed by the whole array serialized\n// to text (backend GROUP BY on attrib->>'name'); split it so each element counts.\nconst toDistributionValues = (v: unknown): unknown[] => {\n if (Array.isArray(v)) return v\n if (typeof v === 'string') {\n const t = v.trim()\n if (t.startsWith('[') && t.endsWith(']')) {\n try {\n const parsed = JSON.parse(t)\n if (Array.isArray(parsed)) return parsed\n } catch {}\n }\n }\n return [v]\n}\n\nconst normalizeDistribution = (raw: unknown): FieldStats['distribution'] => {\n if (raw == null) return undefined\n let value = raw\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value)\n } catch {\n return undefined\n }\n }\n if (Array.isArray(value)) {\n // dedupe by value; array buckets (tags/assignees combos) unnest per value\n const byValue = new Map<string, { value: string; count: number }>()\n for (const d of value) {\n if (!d || d.value == null) continue\n const vals = toDistributionValues(d.value)\n for (const raw of vals) {\n const v = String(raw)\n const prev = byValue.get(v)\n byValue.set(v, { ...d, value: v, count: (prev?.count ?? 0) + (Number(d.count) || 0) })\n }\n }\n return [...byValue.values()]\n }\n if (typeof value === 'object') {\n return Object.entries(value as Record<string, unknown>).map(([v, count]) => ({\n value: v,\n count: Number(count) || 0,\n }))\n }\n return undefined\n}\n\nconst sumN = (a?: number | null, b?: number | null): number | undefined =>\n a == null && b == null ? undefined : (a ?? 0) + (b ?? 0)\nconst lowest = <T>(a?: T | null, b?: T | null): T | undefined =>\n a == null ? b ?? undefined : b == null ? a : a < b ? a : b\nconst highest = <T>(a?: T | null, b?: T | null): T | undefined =>\n a == null ? b ?? undefined : b == null ? a : a > b ? a : b\nconst pct = (part?: number, rest?: number): number | undefined =>\n part != null && rest != null && part + rest > 0\n ? Math.round((part / (part + rest)) * 10000) / 100\n : undefined\n\n// Additive combine of one column's stats from two entity sets (e.g. folder +\n// task). Counts sum, min/max widen, percentages recompute, avg is weighted by\n// filled counts when available.\nconst combineTwo = (a: FieldStats, b: FieldStats): FieldStats => {\n const filled = sumN(a.valueFilledCount, b.valueFilledCount)\n const notFilled = sumN(a.valueNotFilledCount, b.valueNotFilledCount)\n const checked = sumN(a.checkedCount, b.checkedCount)\n const notChecked = sumN(a.notCheckedCount, b.notCheckedCount)\n\n let avg: number | undefined\n if (a.avg != null && b.avg != null) {\n const wa = a.valueFilledCount\n const wb = b.valueFilledCount\n avg =\n wa != null && wb != null && wa + wb > 0\n ? (a.avg * wa + b.avg * wb) / (wa + wb)\n : (a.avg + b.avg) / 2\n avg = Math.round(avg * 100) / 100\n } else {\n avg = a.avg ?? b.avg ?? undefined\n }\n\n let distribution: FieldStats['distribution']\n if (a.distribution?.length || b.distribution?.length) {\n const byValue = new Map<string, NonNullable<FieldStats['distribution']>[number]>()\n for (const d of [...(a.distribution ?? []), ...(b.distribution ?? [])]) {\n const prev = byValue.get(d.value)\n byValue.set(d.value, prev ? { ...prev, count: prev.count + d.count } : { ...d })\n }\n distribution = [...byValue.values()]\n }\n\n return {\n columnName: a.columnName,\n min: lowest(a.min, b.min),\n max: highest(a.max, b.max),\n avg,\n sum: sumN(a.sum, b.sum),\n valueFilledCount: filled,\n valueNotFilledCount: notFilled,\n percentageFilled: pct(filled, notFilled),\n percentageNotFilled: pct(notFilled, filled),\n checkedCount: checked,\n notCheckedCount: notChecked,\n checkedPercentage: pct(checked, notChecked),\n notCheckedPercentage: pct(notChecked, checked),\n distribution,\n primaryCount: a.primaryCount ?? b.primaryCount,\n secondaryCount: a.secondaryCount ?? b.secondaryCount,\n }\n}\n\n// Normalize a raw fieldStats response (apply in transformResponse).\nexport const normalizeFieldStats = (stats: FieldStats[]): FieldStats[] =>\n stats.map((s) => ({\n ...s,\n columnName: canonicalColumnId(s.columnName),\n distribution: normalizeDistribution(s.distribution),\n }))\n\n// Merge stats lists by canonical column id, field-wise: overlay's non-null values\n// win, base fills the gaps. A single list also dedupes its own repeated columns.\nexport const mergeFieldStats = (\n overlay: FieldStats[] = [],\n base: FieldStats[] = [],\n): FieldStats[] => {\n const byId = new Map<string, FieldStats>()\n for (const s of base) byId.set(canonicalColumnId(s.columnName), { ...s })\n for (const s of overlay) {\n const id = canonicalColumnId(s.columnName)\n const merged: FieldStats = { ...(byId.get(id) || { columnName: s.columnName }) }\n for (const [k, v] of Object.entries(s)) {\n if (v !== null && v !== undefined) (merged as any)[k] = v\n }\n byId.set(id, merged)\n }\n return [...byId.values()]\n}\n\n// Total row count for an entity set = max(filled + not-filled) across its\n// stat columns. Feeds the main folders/tasks count cell.\nexport const totalRowsFromStats = (stats: FieldStats[]): number =>\n stats.reduce(\n (max, s) => Math.max(max, (s.valueFilledCount ?? 0) + (s.valueNotFilledCount ?? 0)),\n 0,\n )\n\n// Combine primary-entity stats (tasks/versions) with group-entity stats\n// (folders/products) for the \"include groups & folders\" row scope.\nexport const combineFieldStats = (\n primary: FieldStats[],\n group: FieldStats[] = [],\n): FieldStats[] => {\n const byId = new Map<string, FieldStats>()\n for (const s of primary) byId.set(canonicalColumnId(s.columnName), s)\n const out = new Map(byId)\n for (const g of group) {\n const id = canonicalColumnId(g.columnName)\n const p = byId.get(id)\n out.set(id, p ? combineTwo(p, g) : g)\n }\n return [...out.values()]\n}\n\nexport const transformStatsError = (error: any, entityType: string): string => {\n const message = error?.message ?? 'Unknown stats error'\n console.error(`Error fetching ${entityType} stats:`, error)\n return message\n}\n"],"names":["snakeToCamel","s","_","c","COLUMN_ALIASES","canonicalColumnId","name","toDistributionValues","v","t","parsed","normalizeDistribution","raw","value","byValue","d","vals","prev","count","sumN","a","b","lowest","highest","pct","part","rest","combineTwo","filled","notFilled","checked","notChecked","avg","wa","wb","distribution","normalizeFieldStats","stats","mergeFieldStats","overlay","base","byId","id","merged","k","totalRowsFromStats","max","combineFieldStats","primary","group","out","g","p","transformStatsError","error","entityType","message"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnStats.cjs.js","sources":["../../../../../../src/api/queries/columnStats/columnStats.ts"],"sourcesContent":["import type { ColumnStats } from '@shared/api/generated'\n// Shape of the backend GraphQL `ColumnStats` (connection.fieldStats).\n// `sum` and `distribution` are typed ahead of backend support so wiring them is a no-op.\nexport interface FieldStats extends ColumnStats {\n primaryCount?: number | null\n secondaryCount?: number | null\n}\n\nconst snakeToCamel = (s: string): string => s.replace(/_([a-z0-9])/g, (_, c) => c.toUpperCase())\n\n// Per-entity \"type\" columns all map to the unified `subType` column in the table.\n// (`product_base_type` is a separate column — productBaseType — so not aliased.)\nconst COLUMN_ALIASES: Record<string, string> = {\n task_type: 'subType',\n folder_type: 'subType',\n product_type: 'subType',\n}\n\n// Canonical frontend column id for a backend column name. Attribute columns keep\n// their `attrib_` form; everything else is snake_case on the backend but camelCase\n// in the table (product_base_type → productBaseType, created_at → createdAt).\nexport const canonicalColumnId = (name: string): string => {\n if (name in COLUMN_ALIASES) return COLUMN_ALIASES[name]\n if (name.startsWith('project_attributes_')) {\n return 'attrib_' + name.slice('project_attributes_'.length)\n }\n if (name.startsWith('inherited_attributes_')) {\n return 'attrib_' + name.slice('inherited_attributes_'.length)\n }\n if (name.startsWith('attrib_')) return name\n return snakeToCamel(name)\n}\n\n// list_of_strings attrs arrive as one bucket keyed by the whole array serialized\n// to text (backend GROUP BY on attrib->>'name'); split it so each element counts.\nconst toDistributionValues = (v: unknown): unknown[] => {\n if (Array.isArray(v)) return v\n if (typeof v === 'string') {\n const t = v.trim()\n if (t.startsWith('[') && t.endsWith(']')) {\n try {\n const parsed = JSON.parse(t)\n if (Array.isArray(parsed)) return parsed\n } catch {}\n }\n }\n return [v]\n}\n\nconst normalizeDistribution = (raw: unknown): FieldStats['distribution'] => {\n if (raw == null) return undefined\n let value = raw\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value)\n } catch {\n return undefined\n }\n }\n if (Array.isArray(value)) {\n // dedupe by value; array buckets (tags/assignees combos) unnest per value\n const byValue = new Map<string, { value: string; count: number }>()\n for (const d of value) {\n if (!d || d.value == null) continue\n const vals = toDistributionValues(d.value)\n for (const raw of vals) {\n const v = String(raw)\n const prev = byValue.get(v)\n byValue.set(v, { ...d, value: v, count: (prev?.count ?? 0) + (Number(d.count) || 0) })\n }\n }\n return [...byValue.values()]\n }\n if (typeof value === 'object') {\n return Object.entries(value as Record<string, unknown>).map(([v, count]) => ({\n value: v,\n count: Number(count) || 0,\n }))\n }\n return undefined\n}\n\nconst sumN = (a?: number | null, b?: number | null): number | undefined =>\n a == null && b == null ? undefined : (a ?? 0) + (b ?? 0)\nconst lowest = <T>(a?: T | null, b?: T | null): T | undefined =>\n a == null ? b ?? undefined : b == null ? a : a < b ? a : b\nconst highest = <T>(a?: T | null, b?: T | null): T | undefined =>\n a == null ? b ?? undefined : b == null ? a : a > b ? a : b\nconst pct = (part?: number, rest?: number): number | undefined =>\n part != null && rest != null && part + rest > 0\n ? Math.round((part / (part + rest)) * 10000) / 100\n : undefined\n\n// Additive combine of one column's stats from two entity sets (e.g. folder +\n// task). Counts sum, min/max widen, percentages recompute, avg is weighted by\n// filled counts when available.\nconst combineTwo = (a: FieldStats, b: FieldStats): FieldStats => {\n const filled = sumN(a.valueFilledCount, b.valueFilledCount)\n const notFilled = sumN(a.valueNotFilledCount, b.valueNotFilledCount)\n const checked = sumN(a.checkedCount, b.checkedCount)\n const notChecked = sumN(a.notCheckedCount, b.notCheckedCount)\n\n let avg: number | undefined\n if (a.avg != null && b.avg != null) {\n const wa = a.valueFilledCount\n const wb = b.valueFilledCount\n avg =\n wa != null && wb != null && wa + wb > 0\n ? (a.avg * wa + b.avg * wb) / (wa + wb)\n : (a.avg + b.avg) / 2\n avg = Math.round(avg * 100) / 100\n } else {\n avg = a.avg ?? b.avg ?? undefined\n }\n\n let distribution: FieldStats['distribution']\n if (a.distribution?.length || b.distribution?.length) {\n const byValue = new Map<string, NonNullable<FieldStats['distribution']>[number]>()\n for (const d of [...(a.distribution ?? []), ...(b.distribution ?? [])]) {\n const prev = byValue.get(d.value)\n byValue.set(d.value, prev ? { ...prev, count: prev.count + d.count } : { ...d })\n }\n distribution = [...byValue.values()]\n }\n\n return {\n columnName: a.columnName,\n min: lowest(a.min, b.min),\n max: highest(a.max, b.max),\n avg,\n sum: sumN(a.sum, b.sum),\n valueFilledCount: filled,\n valueNotFilledCount: notFilled,\n percentageFilled: pct(filled, notFilled),\n percentageNotFilled: pct(notFilled, filled),\n checkedCount: checked,\n notCheckedCount: notChecked,\n checkedPercentage: pct(checked, notChecked),\n notCheckedPercentage: pct(notChecked, checked),\n distribution,\n primaryCount: a.primaryCount ?? b.primaryCount,\n secondaryCount: a.secondaryCount ?? b.secondaryCount,\n }\n}\n\n// Normalize a raw fieldStats response (apply in transformResponse).\nexport const normalizeFieldStats = (stats: FieldStats[]): FieldStats[] =>\n stats.map((s) => ({\n ...s,\n columnName: canonicalColumnId(s.columnName),\n distribution: normalizeDistribution(s.distribution),\n }))\n\n// Merge stats lists by canonical column id, field-wise: overlay's non-null values\n// win, base fills the gaps. A single list also dedupes its own repeated columns.\nexport const mergeFieldStats = (\n overlay: FieldStats[] = [],\n base: FieldStats[] = [],\n): FieldStats[] => {\n const byId = new Map<string, FieldStats>()\n for (const s of base) byId.set(canonicalColumnId(s.columnName), { ...s })\n for (const s of overlay) {\n const id = canonicalColumnId(s.columnName)\n const merged: FieldStats = { ...(byId.get(id) || { columnName: s.columnName }) }\n for (const [k, v] of Object.entries(s)) {\n if (v !== null && v !== undefined) (merged as any)[k] = v\n }\n byId.set(id, merged)\n }\n return [...byId.values()]\n}\n\n// Total row count for an entity set = max(filled + not-filled) across its\n// stat columns. Feeds the main folders/tasks count cell.\nexport const totalRowsFromStats = (stats: FieldStats[]): number =>\n stats.reduce(\n (max, s) => Math.max(max, (s.valueFilledCount ?? 0) + (s.valueNotFilledCount ?? 0)),\n 0,\n )\n\n// Combine primary-entity stats (tasks/versions) with group-entity stats\n// (folders/products) for the \"include groups & folders\" row scope.\nexport const combineFieldStats = (\n primary: FieldStats[],\n group: FieldStats[] = [],\n): FieldStats[] => {\n const byId = new Map<string, FieldStats>()\n for (const s of primary) byId.set(canonicalColumnId(s.columnName), s)\n const out = new Map(byId)\n for (const g of group) {\n const id = canonicalColumnId(g.columnName)\n const p = byId.get(id)\n out.set(id, p ? combineTwo(p, g) : g)\n }\n return [...out.values()]\n}\n\nexport const transformStatsError = (error: any, entityType: string): string => {\n const message = error?.message ?? 'Unknown stats error'\n console.error(`Error fetching ${entityType} stats:`, error)\n return message\n}\n"],"names":["snakeToCamel","s","_","c","COLUMN_ALIASES","canonicalColumnId","name","toDistributionValues","v","t","parsed","normalizeDistribution","raw","value","byValue","d","vals","prev","count","sumN","a","b","lowest","highest","pct","part","rest","combineTwo","filled","notFilled","checked","notChecked","avg","wa","wb","distribution","normalizeFieldStats","stats","mergeFieldStats","overlay","base","byId","id","merged","k","totalRowsFromStats","max","combineFieldStats","primary","group","out","g","p","transformStatsError","error","entityType","message"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnStats.es.js","sources":["../../../../../../src/api/queries/columnStats/columnStats.ts"],"sourcesContent":["import { ColumnStats } from '@shared/api/generated'\n// Shape of the backend GraphQL `ColumnStats` (connection.fieldStats).\n// `sum` and `distribution` are typed ahead of backend support so wiring them is a no-op.\nexport interface FieldStats extends ColumnStats {\n primaryCount?: number | null\n secondaryCount?: number | null\n}\n\nconst snakeToCamel = (s: string): string => s.replace(/_([a-z0-9])/g, (_, c) => c.toUpperCase())\n\n// Per-entity \"type\" columns all map to the unified `subType` column in the table.\n// (`product_base_type` is a separate column — productBaseType — so not aliased.)\nconst COLUMN_ALIASES: Record<string, string> = {\n task_type: 'subType',\n folder_type: 'subType',\n product_type: 'subType',\n}\n\n// Canonical frontend column id for a backend column name. Attribute columns keep\n// their `attrib_` form; everything else is snake_case on the backend but camelCase\n// in the table (product_base_type → productBaseType, created_at → createdAt).\nexport const canonicalColumnId = (name: string): string => {\n if (name in COLUMN_ALIASES) return COLUMN_ALIASES[name]\n if (name.startsWith('project_attributes_')) {\n return 'attrib_' + name.slice('project_attributes_'.length)\n }\n if (name.startsWith('inherited_attributes_')) {\n return 'attrib_' + name.slice('inherited_attributes_'.length)\n }\n if (name.startsWith('attrib_')) return name\n return snakeToCamel(name)\n}\n\n// list_of_strings attrs arrive as one bucket keyed by the whole array serialized\n// to text (backend GROUP BY on attrib->>'name'); split it so each element counts.\nconst toDistributionValues = (v: unknown): unknown[] => {\n if (Array.isArray(v)) return v\n if (typeof v === 'string') {\n const t = v.trim()\n if (t.startsWith('[') && t.endsWith(']')) {\n try {\n const parsed = JSON.parse(t)\n if (Array.isArray(parsed)) return parsed\n } catch {}\n }\n }\n return [v]\n}\n\nconst normalizeDistribution = (raw: unknown): FieldStats['distribution'] => {\n if (raw == null) return undefined\n let value = raw\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value)\n } catch {\n return undefined\n }\n }\n if (Array.isArray(value)) {\n // dedupe by value; array buckets (tags/assignees combos) unnest per value\n const byValue = new Map<string, { value: string; count: number }>()\n for (const d of value) {\n if (!d || d.value == null) continue\n const vals = toDistributionValues(d.value)\n for (const raw of vals) {\n const v = String(raw)\n const prev = byValue.get(v)\n byValue.set(v, { ...d, value: v, count: (prev?.count ?? 0) + (Number(d.count) || 0) })\n }\n }\n return [...byValue.values()]\n }\n if (typeof value === 'object') {\n return Object.entries(value as Record<string, unknown>).map(([v, count]) => ({\n value: v,\n count: Number(count) || 0,\n }))\n }\n return undefined\n}\n\nconst sumN = (a?: number | null, b?: number | null): number | undefined =>\n a == null && b == null ? undefined : (a ?? 0) + (b ?? 0)\nconst lowest = <T>(a?: T | null, b?: T | null): T | undefined =>\n a == null ? b ?? undefined : b == null ? a : a < b ? a : b\nconst highest = <T>(a?: T | null, b?: T | null): T | undefined =>\n a == null ? b ?? undefined : b == null ? a : a > b ? a : b\nconst pct = (part?: number, rest?: number): number | undefined =>\n part != null && rest != null && part + rest > 0\n ? Math.round((part / (part + rest)) * 10000) / 100\n : undefined\n\n// Additive combine of one column's stats from two entity sets (e.g. folder +\n// task). Counts sum, min/max widen, percentages recompute, avg is weighted by\n// filled counts when available.\nconst combineTwo = (a: FieldStats, b: FieldStats): FieldStats => {\n const filled = sumN(a.valueFilledCount, b.valueFilledCount)\n const notFilled = sumN(a.valueNotFilledCount, b.valueNotFilledCount)\n const checked = sumN(a.checkedCount, b.checkedCount)\n const notChecked = sumN(a.notCheckedCount, b.notCheckedCount)\n\n let avg: number | undefined\n if (a.avg != null && b.avg != null) {\n const wa = a.valueFilledCount\n const wb = b.valueFilledCount\n avg =\n wa != null && wb != null && wa + wb > 0\n ? (a.avg * wa + b.avg * wb) / (wa + wb)\n : (a.avg + b.avg) / 2\n avg = Math.round(avg * 100) / 100\n } else {\n avg = a.avg ?? b.avg ?? undefined\n }\n\n let distribution: FieldStats['distribution']\n if (a.distribution?.length || b.distribution?.length) {\n const byValue = new Map<string, NonNullable<FieldStats['distribution']>[number]>()\n for (const d of [...(a.distribution ?? []), ...(b.distribution ?? [])]) {\n const prev = byValue.get(d.value)\n byValue.set(d.value, prev ? { ...prev, count: prev.count + d.count } : { ...d })\n }\n distribution = [...byValue.values()]\n }\n\n return {\n columnName: a.columnName,\n min: lowest(a.min, b.min),\n max: highest(a.max, b.max),\n avg,\n sum: sumN(a.sum, b.sum),\n valueFilledCount: filled,\n valueNotFilledCount: notFilled,\n percentageFilled: pct(filled, notFilled),\n percentageNotFilled: pct(notFilled, filled),\n checkedCount: checked,\n notCheckedCount: notChecked,\n checkedPercentage: pct(checked, notChecked),\n notCheckedPercentage: pct(notChecked, checked),\n distribution,\n primaryCount: a.primaryCount ?? b.primaryCount,\n secondaryCount: a.secondaryCount ?? b.secondaryCount,\n }\n}\n\n// Normalize a raw fieldStats response (apply in transformResponse).\nexport const normalizeFieldStats = (stats: FieldStats[]): FieldStats[] =>\n stats.map((s) => ({\n ...s,\n columnName: canonicalColumnId(s.columnName),\n distribution: normalizeDistribution(s.distribution),\n }))\n\n// Merge stats lists by canonical column id, field-wise: overlay's non-null values\n// win, base fills the gaps. A single list also dedupes its own repeated columns.\nexport const mergeFieldStats = (\n overlay: FieldStats[] = [],\n base: FieldStats[] = [],\n): FieldStats[] => {\n const byId = new Map<string, FieldStats>()\n for (const s of base) byId.set(canonicalColumnId(s.columnName), { ...s })\n for (const s of overlay) {\n const id = canonicalColumnId(s.columnName)\n const merged: FieldStats = { ...(byId.get(id) || { columnName: s.columnName }) }\n for (const [k, v] of Object.entries(s)) {\n if (v !== null && v !== undefined) (merged as any)[k] = v\n }\n byId.set(id, merged)\n }\n return [...byId.values()]\n}\n\n// Total row count for an entity set = max(filled + not-filled) across its\n// stat columns. Feeds the main folders/tasks count cell.\nexport const totalRowsFromStats = (stats: FieldStats[]): number =>\n stats.reduce(\n (max, s) => Math.max(max, (s.valueFilledCount ?? 0) + (s.valueNotFilledCount ?? 0)),\n 0,\n )\n\n// Combine primary-entity stats (tasks/versions) with group-entity stats\n// (folders/products) for the \"include groups & folders\" row scope.\nexport const combineFieldStats = (\n primary: FieldStats[],\n group: FieldStats[] = [],\n): FieldStats[] => {\n const byId = new Map<string, FieldStats>()\n for (const s of primary) byId.set(canonicalColumnId(s.columnName), s)\n const out = new Map(byId)\n for (const g of group) {\n const id = canonicalColumnId(g.columnName)\n const p = byId.get(id)\n out.set(id, p ? combineTwo(p, g) : g)\n }\n return [...out.values()]\n}\n\nexport const transformStatsError = (error: any, entityType: string): string => {\n const message = error?.message ?? 'Unknown stats error'\n console.error(`Error fetching ${entityType} stats:`, error)\n return message\n}\n"],"names":["snakeToCamel","s","_","c","COLUMN_ALIASES","canonicalColumnId","name","toDistributionValues","v","t","parsed","normalizeDistribution","raw","value","byValue","d","vals","prev","count","sumN","a","b","lowest","highest","pct","part","rest","combineTwo","filled","notFilled","checked","notChecked","avg","wa","wb","distribution","normalizeFieldStats","stats","mergeFieldStats","overlay","base","byId","id","merged","k","totalRowsFromStats","max","combineFieldStats","primary","group","out","g","p","transformStatsError","error","entityType","message"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnStats.es.js","sources":["../../../../../../src/api/queries/columnStats/columnStats.ts"],"sourcesContent":["import type { ColumnStats } from '@shared/api/generated'\n// Shape of the backend GraphQL `ColumnStats` (connection.fieldStats).\n// `sum` and `distribution` are typed ahead of backend support so wiring them is a no-op.\nexport interface FieldStats extends ColumnStats {\n primaryCount?: number | null\n secondaryCount?: number | null\n}\n\nconst snakeToCamel = (s: string): string => s.replace(/_([a-z0-9])/g, (_, c) => c.toUpperCase())\n\n// Per-entity \"type\" columns all map to the unified `subType` column in the table.\n// (`product_base_type` is a separate column — productBaseType — so not aliased.)\nconst COLUMN_ALIASES: Record<string, string> = {\n task_type: 'subType',\n folder_type: 'subType',\n product_type: 'subType',\n}\n\n// Canonical frontend column id for a backend column name. Attribute columns keep\n// their `attrib_` form; everything else is snake_case on the backend but camelCase\n// in the table (product_base_type → productBaseType, created_at → createdAt).\nexport const canonicalColumnId = (name: string): string => {\n if (name in COLUMN_ALIASES) return COLUMN_ALIASES[name]\n if (name.startsWith('project_attributes_')) {\n return 'attrib_' + name.slice('project_attributes_'.length)\n }\n if (name.startsWith('inherited_attributes_')) {\n return 'attrib_' + name.slice('inherited_attributes_'.length)\n }\n if (name.startsWith('attrib_')) return name\n return snakeToCamel(name)\n}\n\n// list_of_strings attrs arrive as one bucket keyed by the whole array serialized\n// to text (backend GROUP BY on attrib->>'name'); split it so each element counts.\nconst toDistributionValues = (v: unknown): unknown[] => {\n if (Array.isArray(v)) return v\n if (typeof v === 'string') {\n const t = v.trim()\n if (t.startsWith('[') && t.endsWith(']')) {\n try {\n const parsed = JSON.parse(t)\n if (Array.isArray(parsed)) return parsed\n } catch {}\n }\n }\n return [v]\n}\n\nconst normalizeDistribution = (raw: unknown): FieldStats['distribution'] => {\n if (raw == null) return undefined\n let value = raw\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value)\n } catch {\n return undefined\n }\n }\n if (Array.isArray(value)) {\n // dedupe by value; array buckets (tags/assignees combos) unnest per value\n const byValue = new Map<string, { value: string; count: number }>()\n for (const d of value) {\n if (!d || d.value == null) continue\n const vals = toDistributionValues(d.value)\n for (const raw of vals) {\n const v = String(raw)\n const prev = byValue.get(v)\n byValue.set(v, { ...d, value: v, count: (prev?.count ?? 0) + (Number(d.count) || 0) })\n }\n }\n return [...byValue.values()]\n }\n if (typeof value === 'object') {\n return Object.entries(value as Record<string, unknown>).map(([v, count]) => ({\n value: v,\n count: Number(count) || 0,\n }))\n }\n return undefined\n}\n\nconst sumN = (a?: number | null, b?: number | null): number | undefined =>\n a == null && b == null ? undefined : (a ?? 0) + (b ?? 0)\nconst lowest = <T>(a?: T | null, b?: T | null): T | undefined =>\n a == null ? b ?? undefined : b == null ? a : a < b ? a : b\nconst highest = <T>(a?: T | null, b?: T | null): T | undefined =>\n a == null ? b ?? undefined : b == null ? a : a > b ? a : b\nconst pct = (part?: number, rest?: number): number | undefined =>\n part != null && rest != null && part + rest > 0\n ? Math.round((part / (part + rest)) * 10000) / 100\n : undefined\n\n// Additive combine of one column's stats from two entity sets (e.g. folder +\n// task). Counts sum, min/max widen, percentages recompute, avg is weighted by\n// filled counts when available.\nconst combineTwo = (a: FieldStats, b: FieldStats): FieldStats => {\n const filled = sumN(a.valueFilledCount, b.valueFilledCount)\n const notFilled = sumN(a.valueNotFilledCount, b.valueNotFilledCount)\n const checked = sumN(a.checkedCount, b.checkedCount)\n const notChecked = sumN(a.notCheckedCount, b.notCheckedCount)\n\n let avg: number | undefined\n if (a.avg != null && b.avg != null) {\n const wa = a.valueFilledCount\n const wb = b.valueFilledCount\n avg =\n wa != null && wb != null && wa + wb > 0\n ? (a.avg * wa + b.avg * wb) / (wa + wb)\n : (a.avg + b.avg) / 2\n avg = Math.round(avg * 100) / 100\n } else {\n avg = a.avg ?? b.avg ?? undefined\n }\n\n let distribution: FieldStats['distribution']\n if (a.distribution?.length || b.distribution?.length) {\n const byValue = new Map<string, NonNullable<FieldStats['distribution']>[number]>()\n for (const d of [...(a.distribution ?? []), ...(b.distribution ?? [])]) {\n const prev = byValue.get(d.value)\n byValue.set(d.value, prev ? { ...prev, count: prev.count + d.count } : { ...d })\n }\n distribution = [...byValue.values()]\n }\n\n return {\n columnName: a.columnName,\n min: lowest(a.min, b.min),\n max: highest(a.max, b.max),\n avg,\n sum: sumN(a.sum, b.sum),\n valueFilledCount: filled,\n valueNotFilledCount: notFilled,\n percentageFilled: pct(filled, notFilled),\n percentageNotFilled: pct(notFilled, filled),\n checkedCount: checked,\n notCheckedCount: notChecked,\n checkedPercentage: pct(checked, notChecked),\n notCheckedPercentage: pct(notChecked, checked),\n distribution,\n primaryCount: a.primaryCount ?? b.primaryCount,\n secondaryCount: a.secondaryCount ?? b.secondaryCount,\n }\n}\n\n// Normalize a raw fieldStats response (apply in transformResponse).\nexport const normalizeFieldStats = (stats: FieldStats[]): FieldStats[] =>\n stats.map((s) => ({\n ...s,\n columnName: canonicalColumnId(s.columnName),\n distribution: normalizeDistribution(s.distribution),\n }))\n\n// Merge stats lists by canonical column id, field-wise: overlay's non-null values\n// win, base fills the gaps. A single list also dedupes its own repeated columns.\nexport const mergeFieldStats = (\n overlay: FieldStats[] = [],\n base: FieldStats[] = [],\n): FieldStats[] => {\n const byId = new Map<string, FieldStats>()\n for (const s of base) byId.set(canonicalColumnId(s.columnName), { ...s })\n for (const s of overlay) {\n const id = canonicalColumnId(s.columnName)\n const merged: FieldStats = { ...(byId.get(id) || { columnName: s.columnName }) }\n for (const [k, v] of Object.entries(s)) {\n if (v !== null && v !== undefined) (merged as any)[k] = v\n }\n byId.set(id, merged)\n }\n return [...byId.values()]\n}\n\n// Total row count for an entity set = max(filled + not-filled) across its\n// stat columns. Feeds the main folders/tasks count cell.\nexport const totalRowsFromStats = (stats: FieldStats[]): number =>\n stats.reduce(\n (max, s) => Math.max(max, (s.valueFilledCount ?? 0) + (s.valueNotFilledCount ?? 0)),\n 0,\n )\n\n// Combine primary-entity stats (tasks/versions) with group-entity stats\n// (folders/products) for the \"include groups & folders\" row scope.\nexport const combineFieldStats = (\n primary: FieldStats[],\n group: FieldStats[] = [],\n): FieldStats[] => {\n const byId = new Map<string, FieldStats>()\n for (const s of primary) byId.set(canonicalColumnId(s.columnName), s)\n const out = new Map(byId)\n for (const g of group) {\n const id = canonicalColumnId(g.columnName)\n const p = byId.get(id)\n out.set(id, p ? combineTwo(p, g) : g)\n }\n return [...out.values()]\n}\n\nexport const transformStatsError = (error: any, entityType: string): string => {\n const message = error?.message ?? 'Unknown stats error'\n console.error(`Error fetching ${entityType} stats:`, error)\n return message\n}\n"],"names":["snakeToCamel","s","_","c","COLUMN_ALIASES","canonicalColumnId","name","toDistributionValues","v","t","parsed","normalizeDistribution","raw","value","byValue","d","vals","prev","count","sumN","a","b","lowest","highest","pct","part","rest","combineTwo","filled","notFilled","checked","notChecked","avg","wa","wb","distribution","normalizeFieldStats","stats","mergeFieldStats","overlay","base","byId","id","merged","k","totalRowsFromStats","max","combineFieldStats","primary","group","out","g","p","transformStatsError","error","entityType","message"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");const a=require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/dataImport.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");const S=require("../../../containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js"),h=e=>{const r=e?.targets;return Array.isArray(r)?r:r?[r]:[]},d=(e,r,n)=>{const i=r?.[e],o=n?.[e];return i==="none"||o==="none"?!1:i!=null||o!=null},b=(e,r,n,i)=>{const o=new Set([...Object.keys(e??{}),...Object.keys(r??{})]);for(const c of o)if(!(n&&!S.checkColumnVisibility(n,c,i))&&d(c,e,r))return!0;return!1},F=(e,r,n,i)=>r?.name==="none"&&!b(e,r,n,i),k=(e,r)=>{if(!e)return!1;if(!r)return!0;const n=new Set(h(r).map(i=>i.field));return h(e).some(i=>!n.has(i.field))},q=[a.StatsOperation.Filled,a.StatsOperation.NotFilled],m=[a.StatsOperation.Min,a.StatsOperation.Max,a.StatsOperation.Avg,a.StatsOperation.Sum,a.StatsOperation.Filled,a.StatsOperation.NotFilled],u=[a.StatsOperation.Filled,a.StatsOperation.NotFilled,a.StatsOperation.Distribution],_={folder:"folder_type",task:"task_type",product:"product_type",version:null},v=({entity:e,attribs:r,columnVisibility:n,defaultColumnVisibility:i,columnSummaries:o,columnSummaryScopes:c,extraFields:y=[]})=>{const O=t=>S.checkColumnVisibility(n,t,i),l=t=>O(t)&&d(t,o,c),s=[];e==="version"?s.push({field:"status",aggregations:l("status")?u:q}):(s.push({field:"name",aggregations:q}),l("status")&&s.push({field:"status",aggregations:u})),l("tags")&&s.push({field:"tags",aggregations:u}),e==="task"&&l("assignees")&&s.push({field:"assignees",aggregations:u});const p=_[e];p&&l("subType")&&s.push({field:p,aggregations:u});for(const t of y)s.push({field:t,aggregations:u});for(const t of r){if(t.scope&&!t.scope.includes(e)||!l(`attrib_${t.name}`))continue;let f=`attrib.${t.name}`;["folder","task"].includes(e)&&(f=`inherited_attributes.${t.name}`);const g=t.data?.type;g==="integer"||g==="float"?s.push({field:f,aggregations:m}):g==="string"?s.push({field:f,aggregations:t.data?.enum?.length?u:q}):(g==="list_of_strings"||g==="list_of_integers")&&s.push({field:f,aggregations:u})}return s};exports.anySummaryActive=b;exports.buildMetricTargets=v;exports.hasNewTargetFields=k;exports.isSummaryActive=d;exports.shouldSkipColumnStats=F;
|
|
2
2
|
//# sourceMappingURL=metricTargets.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metricTargets.cjs.js","sources":["../../../../../../src/api/queries/columnStats/metricTargets.ts"],"sourcesContent":["import type { VisibilityState } from '@tanstack/react-table'\nimport { StatsOperation } from '@shared/api/generated'\nimport { checkColumnVisibility } from '@shared/containers/ProjectTreeTable/utils/checkColumnVisibility'\nimport type { SummaryCalc, RowScope } from '@shared/containers/ProjectTreeTable/types/summaryTypes'\n\nexport type MetricTarget = {\n field: string // column or dot-path for JSONB, e.g. 'status' / 'attrib.fps'\n aggregations: StatsOperation[]\n}\n\nexport type StatsEntity = 'folder' | 'task' | 'product' | 'version'\n\n// matches both MetricTarget[] and the codegen'd single-or-array variables type\ntype TargetsArg = { targets?: { field: string }[] | { field: string } | null }\nconst targetFields = (arg?: TargetsArg): { field: string }[] => {\n const t = arg?.targets\n return Array.isArray(t) ? t : t ? [t] : []\n}\n\nexport const isSummaryActive = (\n columnId: string,\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n): boolean => {\n const calc = columnSummaries?.[columnId]\n const scope = columnSummaryScopes?.[columnId]\n if (calc === 'none' || scope === 'none') return false\n return calc != null || scope != null\n}\n\n// True when at least one *visible* column has an active summary — lets callers\n// skip the whole column-stats query when the user has every summary switched off.\n// Visibility matters: a hidden column can still carry a stale summary value, but\n// buildMetricTargets skips it, so it must not keep the query alive either.\nexport const anySummaryActive = (\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n columnVisibility?: VisibilityState,\n defaultColumnVisibility?: VisibilityState,\n): boolean => {\n const ids = new Set([\n ...Object.keys(columnSummaries ?? {}),\n ...Object.keys(columnSummaryScopes ?? {}),\n ])\n for (const id of ids) {\n if (columnVisibility && !checkColumnVisibility(columnVisibility, id, defaultColumnVisibility)) {\n continue\n }\n if (isSummaryActive(id, columnSummaries, columnSummaryScopes)) return true\n }\n return false\n}\n\n// The main count (name column) is on by default, so the footer always has at\n// least that to show. Skip the stats fetch only when the user has explicitly\n// turned the name count off too AND no other column has an active summary —\n// otherwise the name cell has no data and can't be re-enabled.\nexport const shouldSkipColumnStats = (\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n columnVisibility?: VisibilityState,\n defaultColumnVisibility?: VisibilityState,\n): boolean =>\n columnSummaryScopes?.['name'] === 'none' &&\n !anySummaryActive(columnSummaries, columnSummaryScopes, columnVisibility, defaultColumnVisibility)\n\n// refetch only when a target was added — hiding a column needs no query\nexport const hasNewTargetFields = (current?: TargetsArg, previous?: TargetsArg): boolean => {\n if (!current) return false\n if (!previous) return true\n const prevFields = new Set(targetFields(previous).map((t) => t.field))\n return targetFields(current).some((t) => !prevFields.has(t.field))\n}\n\nconst COUNTS: StatsOperation[] = [StatsOperation.Filled, StatsOperation.NotFilled]\n// FILLED rides along so combined-scope averages can be weighted exactly\nconst NUMERIC: StatsOperation[] = [\n StatsOperation.Min,\n StatsOperation.Max,\n StatsOperation.Avg,\n StatsOperation.Sum,\n StatsOperation.Filled,\n StatsOperation.NotFilled,\n]\n// enum columns: counts power the fallback display, distribution the colored bar\nconst ENUM: StatsOperation[] = [\n StatsOperation.Filled,\n StatsOperation.NotFilled,\n StatsOperation.Distribution,\n]\n\n// The table's unified subType column per entity (result columnName maps back\n// to subType via COLUMN_ALIASES in columnStats).\nconst SUB_TYPE_FIELD: Record<StatsEntity, string | null> = {\n folder: 'folder_type',\n task: 'task_type',\n product: 'product_type',\n version: null,\n}\n\n// Structural subset of ProjectTableAttribute — two near-identical versions of\n// that type exist (types/index vs hooks/useAttributesList, data.type optional\n// in the latter); only these fields are needed here so accept both.\ntype AttribFieldLike = {\n name: string\n scope?: string[] | null\n data?: { type?: string; enum?: unknown[] }\n}\n\ntype BuildMetricTargetsArgs = {\n entity: StatsEntity\n attribs: AttribFieldLike[]\n columnVisibility: VisibilityState\n // resolved the same way the table resolves it (opt-in): a column absent from\n // both maps is hidden, so it must NOT be aggregated\n defaultColumnVisibility?: VisibilityState\n columnSummaries?: Record<string, SummaryCalc>\n columnSummaryScopes?: Record<string, RowScope>\n extraFields?: string[] // visible, summary-active page columns, e.g. 'product_base_type'\n}\n\n// Targets for the footer over the columns the user can actually see.\n// Skipped on purpose (backend SQL can't aggregate them safely yet):\n// datetime (numeric cast fails), boolean attribs (text-vs-bool compare on\n// JSONB), and list-type attribs.\nexport const buildMetricTargets = ({\n entity,\n attribs,\n columnVisibility,\n defaultColumnVisibility,\n columnSummaries,\n columnSummaryScopes,\n extraFields = [],\n}: BuildMetricTargetsArgs): MetricTarget[] => {\n const isVisible = (columnId: string) =>\n checkColumnVisibility(columnVisibility, columnId, defaultColumnVisibility)\n const isActive = (columnId: string) =>\n isVisible(columnId) && isSummaryActive(columnId, columnSummaries, columnSummaryScopes)\n\n const targets: MetricTarget[] = []\n if (entity === 'version') {\n // versions have no `name` column (display name derives from the version\n // number) — status is non-null and doubles as the row-count anchor, so it\n targets.push({ field: 'status', aggregations: isActive('status') ? ENUM : COUNTS })\n } else {\n // name counts always — they feed the main folders/tasks count cell\n targets.push({ field: 'name', aggregations: COUNTS })\n if (isActive('status')) targets.push({ field: 'status', aggregations: ENUM })\n }\n if (isActive('tags')) targets.push({ field: 'tags', aggregations: ENUM })\n if (entity === 'task' && isActive('assignees')) {\n targets.push({ field: 'assignees', aggregations: ENUM })\n }\n\n const subTypeField = SUB_TYPE_FIELD[entity]\n if (subTypeField && isActive('subType')) {\n targets.push({ field: subTypeField, aggregations: ENUM })\n }\n\n for (const field of extraFields) {\n targets.push({ field, aggregations: ENUM })\n }\n\n for (const attrib of attribs) {\n if (attrib.scope && !attrib.scope.includes(entity)) continue\n if (!isActive(`attrib_${attrib.name}`)) continue\n\n let field = `attrib.${attrib.name}`\n if (['folder', 'task'].includes(entity)) {\n field = `inherited_attributes.${attrib.name}`\n }\n const type = attrib.data?.type\n if (type === 'integer' || type === 'float') {\n targets.push({ field, aggregations: NUMERIC })\n } else if (type === 'string') {\n targets.push({ field, aggregations: attrib.data?.enum?.length ? ENUM : COUNTS })\n }\n }\n\n return targets\n}\n"],"names":["targetFields","arg","t","isSummaryActive","columnId","columnSummaries","columnSummaryScopes","calc","scope","anySummaryActive","columnVisibility","defaultColumnVisibility","ids","id","checkColumnVisibility","shouldSkipColumnStats","hasNewTargetFields","current","previous","prevFields","COUNTS","StatsOperation","NUMERIC","ENUM","SUB_TYPE_FIELD","buildMetricTargets","entity","attribs","extraFields","isVisible","isActive","targets","subTypeField","field","attrib","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metricTargets.cjs.js","sources":["../../../../../../src/api/queries/columnStats/metricTargets.ts"],"sourcesContent":["import type { VisibilityState } from '@tanstack/react-table'\nimport { StatsOperation } from '@shared/api/generated'\nimport { checkColumnVisibility } from '@shared/containers/ProjectTreeTable/utils/checkColumnVisibility'\nimport type { SummaryCalc, RowScope } from '@shared/containers/ProjectTreeTable/types/summaryTypes'\n\nexport type MetricTarget = {\n field: string // column or dot-path for JSONB, e.g. 'status' / 'attrib.fps'\n aggregations: StatsOperation[]\n}\n\nexport type StatsEntity = 'folder' | 'task' | 'product' | 'version'\n\n// matches both MetricTarget[] and the codegen'd single-or-array variables type\ntype TargetsArg = { targets?: { field: string }[] | { field: string } | null }\nconst targetFields = (arg?: TargetsArg): { field: string }[] => {\n const t = arg?.targets\n return Array.isArray(t) ? t : t ? [t] : []\n}\n\nexport const isSummaryActive = (\n columnId: string,\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n): boolean => {\n const calc = columnSummaries?.[columnId]\n const scope = columnSummaryScopes?.[columnId]\n if (calc === 'none' || scope === 'none') return false\n return calc != null || scope != null\n}\n\n// True when at least one *visible* column has an active summary — lets callers\n// skip the whole column-stats query when the user has every summary switched off.\n// Visibility matters: a hidden column can still carry a stale summary value, but\n// buildMetricTargets skips it, so it must not keep the query alive either.\nexport const anySummaryActive = (\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n columnVisibility?: VisibilityState,\n defaultColumnVisibility?: VisibilityState,\n): boolean => {\n const ids = new Set([\n ...Object.keys(columnSummaries ?? {}),\n ...Object.keys(columnSummaryScopes ?? {}),\n ])\n for (const id of ids) {\n if (columnVisibility && !checkColumnVisibility(columnVisibility, id, defaultColumnVisibility)) {\n continue\n }\n if (isSummaryActive(id, columnSummaries, columnSummaryScopes)) return true\n }\n return false\n}\n\n// The main count (name column) is on by default, so the footer always has at\n// least that to show. Skip the stats fetch only when the user has explicitly\n// turned the name count off too AND no other column has an active summary —\n// otherwise the name cell has no data and can't be re-enabled.\nexport const shouldSkipColumnStats = (\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n columnVisibility?: VisibilityState,\n defaultColumnVisibility?: VisibilityState,\n): boolean =>\n columnSummaryScopes?.['name'] === 'none' &&\n !anySummaryActive(columnSummaries, columnSummaryScopes, columnVisibility, defaultColumnVisibility)\n\n// refetch only when a target was added — hiding a column needs no query\nexport const hasNewTargetFields = (current?: TargetsArg, previous?: TargetsArg): boolean => {\n if (!current) return false\n if (!previous) return true\n const prevFields = new Set(targetFields(previous).map((t) => t.field))\n return targetFields(current).some((t) => !prevFields.has(t.field))\n}\n\nconst COUNTS: StatsOperation[] = [StatsOperation.Filled, StatsOperation.NotFilled]\n// FILLED rides along so combined-scope averages can be weighted exactly\nconst NUMERIC: StatsOperation[] = [\n StatsOperation.Min,\n StatsOperation.Max,\n StatsOperation.Avg,\n StatsOperation.Sum,\n StatsOperation.Filled,\n StatsOperation.NotFilled,\n]\n// enum columns: counts power the fallback display, distribution the colored bar\nconst ENUM: StatsOperation[] = [\n StatsOperation.Filled,\n StatsOperation.NotFilled,\n StatsOperation.Distribution,\n]\n\n// The table's unified subType column per entity (result columnName maps back\n// to subType via COLUMN_ALIASES in columnStats).\nconst SUB_TYPE_FIELD: Record<StatsEntity, string | null> = {\n folder: 'folder_type',\n task: 'task_type',\n product: 'product_type',\n version: null,\n}\n\n// Structural subset of ProjectTableAttribute — two near-identical versions of\n// that type exist (types/index vs hooks/useAttributesList, data.type optional\n// in the latter); only these fields are needed here so accept both.\ntype AttribFieldLike = {\n name: string\n scope?: string[] | null\n data?: { type?: string; enum?: unknown[] }\n}\n\ntype BuildMetricTargetsArgs = {\n entity: StatsEntity\n attribs: AttribFieldLike[]\n columnVisibility: VisibilityState\n // resolved the same way the table resolves it (opt-in): a column absent from\n // both maps is hidden, so it must NOT be aggregated\n defaultColumnVisibility?: VisibilityState\n columnSummaries?: Record<string, SummaryCalc>\n columnSummaryScopes?: Record<string, RowScope>\n extraFields?: string[] // visible, summary-active page columns, e.g. 'product_base_type'\n}\n\n// Targets for the footer over the columns the user can actually see.\n// Skipped on purpose — the backend errors on these, and one bad target fails\n// the whole query, killing every other column's stats too:\n// datetime (\"cannot cast type timestamp with time zone to numeric\") and\n// boolean attribs (\"operator does not exist: text = boolean\").\nexport const buildMetricTargets = ({\n entity,\n attribs,\n columnVisibility,\n defaultColumnVisibility,\n columnSummaries,\n columnSummaryScopes,\n extraFields = [],\n}: BuildMetricTargetsArgs): MetricTarget[] => {\n const isVisible = (columnId: string) =>\n checkColumnVisibility(columnVisibility, columnId, defaultColumnVisibility)\n const isActive = (columnId: string) =>\n isVisible(columnId) && isSummaryActive(columnId, columnSummaries, columnSummaryScopes)\n\n const targets: MetricTarget[] = []\n if (entity === 'version') {\n // versions have no `name` column (display name derives from the version\n // number) — status is non-null and doubles as the row-count anchor, so it\n targets.push({ field: 'status', aggregations: isActive('status') ? ENUM : COUNTS })\n } else {\n // name counts always — they feed the main folders/tasks count cell\n targets.push({ field: 'name', aggregations: COUNTS })\n if (isActive('status')) targets.push({ field: 'status', aggregations: ENUM })\n }\n if (isActive('tags')) targets.push({ field: 'tags', aggregations: ENUM })\n if (entity === 'task' && isActive('assignees')) {\n targets.push({ field: 'assignees', aggregations: ENUM })\n }\n\n const subTypeField = SUB_TYPE_FIELD[entity]\n if (subTypeField && isActive('subType')) {\n targets.push({ field: subTypeField, aggregations: ENUM })\n }\n\n for (const field of extraFields) {\n targets.push({ field, aggregations: ENUM })\n }\n\n for (const attrib of attribs) {\n if (attrib.scope && !attrib.scope.includes(entity)) continue\n if (!isActive(`attrib_${attrib.name}`)) continue\n\n let field = `attrib.${attrib.name}`\n if (['folder', 'task'].includes(entity)) {\n field = `inherited_attributes.${attrib.name}`\n }\n const type = attrib.data?.type\n if (type === 'integer' || type === 'float') {\n targets.push({ field, aggregations: NUMERIC })\n } else if (type === 'string') {\n targets.push({ field, aggregations: attrib.data?.enum?.length ? ENUM : COUNTS })\n } else if (type === 'list_of_strings' || type === 'list_of_integers') {\n // backend buckets the whole array as one serialized value; normalizeDistribution unnests it\n targets.push({ field, aggregations: ENUM })\n }\n }\n\n return targets\n}\n"],"names":["targetFields","arg","t","isSummaryActive","columnId","columnSummaries","columnSummaryScopes","calc","scope","anySummaryActive","columnVisibility","defaultColumnVisibility","ids","id","checkColumnVisibility","shouldSkipColumnStats","hasNewTargetFields","current","previous","prevFields","COUNTS","StatsOperation","NUMERIC","ENUM","SUB_TYPE_FIELD","buildMetricTargets","entity","attribs","extraFields","isVisible","isActive","targets","subTypeField","field","attrib","type"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../../base/client.es.js";
|
|
2
|
-
import { StatsOperation as
|
|
2
|
+
import { StatsOperation as s } from "../../generated/graphql.es.js";
|
|
3
3
|
import "../../generated/graphqlLinks.es.js";
|
|
4
4
|
import "../../generated/access.es.js";
|
|
5
5
|
import "../../generated/actions.es.js";
|
|
@@ -42,68 +42,68 @@ import { checkColumnVisibility as h } from "../../../containers/ProjectTreeTable
|
|
|
42
42
|
const d = (t) => {
|
|
43
43
|
const i = t?.targets;
|
|
44
44
|
return Array.isArray(i) ? i : i ? [i] : [];
|
|
45
|
-
}, b = (t, i,
|
|
46
|
-
const o = i?.[t], a =
|
|
45
|
+
}, b = (t, i, n) => {
|
|
46
|
+
const o = i?.[t], a = n?.[t];
|
|
47
47
|
return o === "none" || a === "none" ? !1 : o != null || a != null;
|
|
48
|
-
},
|
|
48
|
+
}, k = (t, i, n, o) => {
|
|
49
49
|
const a = /* @__PURE__ */ new Set([
|
|
50
50
|
...Object.keys(t ?? {}),
|
|
51
51
|
...Object.keys(i ?? {})
|
|
52
52
|
]);
|
|
53
|
-
for (const
|
|
54
|
-
if (!(
|
|
53
|
+
for (const g of a)
|
|
54
|
+
if (!(n && !h(n, g, o)) && b(g, t, i))
|
|
55
55
|
return !0;
|
|
56
56
|
return !1;
|
|
57
|
-
},
|
|
57
|
+
}, mt = (t, i, n, o) => i?.name === "none" && !k(t, i, n, o), gt = (t, i) => {
|
|
58
58
|
if (!t) return !1;
|
|
59
59
|
if (!i) return !0;
|
|
60
|
-
const
|
|
61
|
-
return d(t).some((o) => !
|
|
62
|
-
}, u = [
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
const n = new Set(d(i).map((o) => o.field));
|
|
61
|
+
return d(t).some((o) => !n.has(o.field));
|
|
62
|
+
}, u = [s.Filled, s.NotFilled], y = [
|
|
63
|
+
s.Min,
|
|
64
|
+
s.Max,
|
|
65
|
+
s.Avg,
|
|
66
|
+
s.Sum,
|
|
67
|
+
s.Filled,
|
|
68
|
+
s.NotFilled
|
|
69
69
|
], p = [
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
],
|
|
70
|
+
s.Filled,
|
|
71
|
+
s.NotFilled,
|
|
72
|
+
s.Distribution
|
|
73
|
+
], N = {
|
|
74
74
|
folder: "folder_type",
|
|
75
75
|
task: "task_type",
|
|
76
76
|
product: "product_type",
|
|
77
77
|
version: null
|
|
78
|
-
},
|
|
78
|
+
}, ft = ({
|
|
79
79
|
entity: t,
|
|
80
80
|
attribs: i,
|
|
81
|
-
columnVisibility:
|
|
81
|
+
columnVisibility: n,
|
|
82
82
|
defaultColumnVisibility: o,
|
|
83
83
|
columnSummaries: a,
|
|
84
|
-
columnSummaryScopes:
|
|
84
|
+
columnSummaryScopes: g,
|
|
85
85
|
extraFields: F = []
|
|
86
86
|
}) => {
|
|
87
|
-
const
|
|
88
|
-
t === "version" ?
|
|
89
|
-
const c =
|
|
90
|
-
c &&
|
|
87
|
+
const _ = (e) => h(n, e, o), l = (e) => _(e) && b(e, a, g), r = [];
|
|
88
|
+
t === "version" ? r.push({ field: "status", aggregations: l("status") ? p : u }) : (r.push({ field: "name", aggregations: u }), l("status") && r.push({ field: "status", aggregations: p })), l("tags") && r.push({ field: "tags", aggregations: p }), t === "task" && l("assignees") && r.push({ field: "assignees", aggregations: p });
|
|
89
|
+
const c = N[t];
|
|
90
|
+
c && l("subType") && r.push({ field: c, aggregations: p });
|
|
91
91
|
for (const e of F)
|
|
92
|
-
|
|
92
|
+
r.push({ field: e, aggregations: p });
|
|
93
93
|
for (const e of i) {
|
|
94
|
-
if (e.scope && !e.scope.includes(t) || !
|
|
94
|
+
if (e.scope && !e.scope.includes(t) || !l(`attrib_${e.name}`)) continue;
|
|
95
95
|
let f = `attrib.${e.name}`;
|
|
96
96
|
["folder", "task"].includes(t) && (f = `inherited_attributes.${e.name}`);
|
|
97
|
-
const
|
|
98
|
-
|
|
97
|
+
const m = e.data?.type;
|
|
98
|
+
m === "integer" || m === "float" ? r.push({ field: f, aggregations: y }) : m === "string" ? r.push({ field: f, aggregations: e.data?.enum?.length ? p : u }) : (m === "list_of_strings" || m === "list_of_integers") && r.push({ field: f, aggregations: p });
|
|
99
99
|
}
|
|
100
|
-
return
|
|
100
|
+
return r;
|
|
101
101
|
};
|
|
102
102
|
export {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
103
|
+
k as anySummaryActive,
|
|
104
|
+
ft as buildMetricTargets,
|
|
105
|
+
gt as hasNewTargetFields,
|
|
106
106
|
b as isSummaryActive,
|
|
107
|
-
|
|
107
|
+
mt as shouldSkipColumnStats
|
|
108
108
|
};
|
|
109
109
|
//# sourceMappingURL=metricTargets.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metricTargets.es.js","sources":["../../../../../../src/api/queries/columnStats/metricTargets.ts"],"sourcesContent":["import type { VisibilityState } from '@tanstack/react-table'\nimport { StatsOperation } from '@shared/api/generated'\nimport { checkColumnVisibility } from '@shared/containers/ProjectTreeTable/utils/checkColumnVisibility'\nimport type { SummaryCalc, RowScope } from '@shared/containers/ProjectTreeTable/types/summaryTypes'\n\nexport type MetricTarget = {\n field: string // column or dot-path for JSONB, e.g. 'status' / 'attrib.fps'\n aggregations: StatsOperation[]\n}\n\nexport type StatsEntity = 'folder' | 'task' | 'product' | 'version'\n\n// matches both MetricTarget[] and the codegen'd single-or-array variables type\ntype TargetsArg = { targets?: { field: string }[] | { field: string } | null }\nconst targetFields = (arg?: TargetsArg): { field: string }[] => {\n const t = arg?.targets\n return Array.isArray(t) ? t : t ? [t] : []\n}\n\nexport const isSummaryActive = (\n columnId: string,\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n): boolean => {\n const calc = columnSummaries?.[columnId]\n const scope = columnSummaryScopes?.[columnId]\n if (calc === 'none' || scope === 'none') return false\n return calc != null || scope != null\n}\n\n// True when at least one *visible* column has an active summary — lets callers\n// skip the whole column-stats query when the user has every summary switched off.\n// Visibility matters: a hidden column can still carry a stale summary value, but\n// buildMetricTargets skips it, so it must not keep the query alive either.\nexport const anySummaryActive = (\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n columnVisibility?: VisibilityState,\n defaultColumnVisibility?: VisibilityState,\n): boolean => {\n const ids = new Set([\n ...Object.keys(columnSummaries ?? {}),\n ...Object.keys(columnSummaryScopes ?? {}),\n ])\n for (const id of ids) {\n if (columnVisibility && !checkColumnVisibility(columnVisibility, id, defaultColumnVisibility)) {\n continue\n }\n if (isSummaryActive(id, columnSummaries, columnSummaryScopes)) return true\n }\n return false\n}\n\n// The main count (name column) is on by default, so the footer always has at\n// least that to show. Skip the stats fetch only when the user has explicitly\n// turned the name count off too AND no other column has an active summary —\n// otherwise the name cell has no data and can't be re-enabled.\nexport const shouldSkipColumnStats = (\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n columnVisibility?: VisibilityState,\n defaultColumnVisibility?: VisibilityState,\n): boolean =>\n columnSummaryScopes?.['name'] === 'none' &&\n !anySummaryActive(columnSummaries, columnSummaryScopes, columnVisibility, defaultColumnVisibility)\n\n// refetch only when a target was added — hiding a column needs no query\nexport const hasNewTargetFields = (current?: TargetsArg, previous?: TargetsArg): boolean => {\n if (!current) return false\n if (!previous) return true\n const prevFields = new Set(targetFields(previous).map((t) => t.field))\n return targetFields(current).some((t) => !prevFields.has(t.field))\n}\n\nconst COUNTS: StatsOperation[] = [StatsOperation.Filled, StatsOperation.NotFilled]\n// FILLED rides along so combined-scope averages can be weighted exactly\nconst NUMERIC: StatsOperation[] = [\n StatsOperation.Min,\n StatsOperation.Max,\n StatsOperation.Avg,\n StatsOperation.Sum,\n StatsOperation.Filled,\n StatsOperation.NotFilled,\n]\n// enum columns: counts power the fallback display, distribution the colored bar\nconst ENUM: StatsOperation[] = [\n StatsOperation.Filled,\n StatsOperation.NotFilled,\n StatsOperation.Distribution,\n]\n\n// The table's unified subType column per entity (result columnName maps back\n// to subType via COLUMN_ALIASES in columnStats).\nconst SUB_TYPE_FIELD: Record<StatsEntity, string | null> = {\n folder: 'folder_type',\n task: 'task_type',\n product: 'product_type',\n version: null,\n}\n\n// Structural subset of ProjectTableAttribute — two near-identical versions of\n// that type exist (types/index vs hooks/useAttributesList, data.type optional\n// in the latter); only these fields are needed here so accept both.\ntype AttribFieldLike = {\n name: string\n scope?: string[] | null\n data?: { type?: string; enum?: unknown[] }\n}\n\ntype BuildMetricTargetsArgs = {\n entity: StatsEntity\n attribs: AttribFieldLike[]\n columnVisibility: VisibilityState\n // resolved the same way the table resolves it (opt-in): a column absent from\n // both maps is hidden, so it must NOT be aggregated\n defaultColumnVisibility?: VisibilityState\n columnSummaries?: Record<string, SummaryCalc>\n columnSummaryScopes?: Record<string, RowScope>\n extraFields?: string[] // visible, summary-active page columns, e.g. 'product_base_type'\n}\n\n// Targets for the footer over the columns the user can actually see.\n// Skipped on purpose (backend SQL can't aggregate them safely yet):\n// datetime (numeric cast fails), boolean attribs (text-vs-bool compare on\n// JSONB), and list-type attribs.\nexport const buildMetricTargets = ({\n entity,\n attribs,\n columnVisibility,\n defaultColumnVisibility,\n columnSummaries,\n columnSummaryScopes,\n extraFields = [],\n}: BuildMetricTargetsArgs): MetricTarget[] => {\n const isVisible = (columnId: string) =>\n checkColumnVisibility(columnVisibility, columnId, defaultColumnVisibility)\n const isActive = (columnId: string) =>\n isVisible(columnId) && isSummaryActive(columnId, columnSummaries, columnSummaryScopes)\n\n const targets: MetricTarget[] = []\n if (entity === 'version') {\n // versions have no `name` column (display name derives from the version\n // number) — status is non-null and doubles as the row-count anchor, so it\n targets.push({ field: 'status', aggregations: isActive('status') ? ENUM : COUNTS })\n } else {\n // name counts always — they feed the main folders/tasks count cell\n targets.push({ field: 'name', aggregations: COUNTS })\n if (isActive('status')) targets.push({ field: 'status', aggregations: ENUM })\n }\n if (isActive('tags')) targets.push({ field: 'tags', aggregations: ENUM })\n if (entity === 'task' && isActive('assignees')) {\n targets.push({ field: 'assignees', aggregations: ENUM })\n }\n\n const subTypeField = SUB_TYPE_FIELD[entity]\n if (subTypeField && isActive('subType')) {\n targets.push({ field: subTypeField, aggregations: ENUM })\n }\n\n for (const field of extraFields) {\n targets.push({ field, aggregations: ENUM })\n }\n\n for (const attrib of attribs) {\n if (attrib.scope && !attrib.scope.includes(entity)) continue\n if (!isActive(`attrib_${attrib.name}`)) continue\n\n let field = `attrib.${attrib.name}`\n if (['folder', 'task'].includes(entity)) {\n field = `inherited_attributes.${attrib.name}`\n }\n const type = attrib.data?.type\n if (type === 'integer' || type === 'float') {\n targets.push({ field, aggregations: NUMERIC })\n } else if (type === 'string') {\n targets.push({ field, aggregations: attrib.data?.enum?.length ? ENUM : COUNTS })\n }\n }\n\n return targets\n}\n"],"names":["targetFields","arg","t","isSummaryActive","columnId","columnSummaries","columnSummaryScopes","calc","scope","anySummaryActive","columnVisibility","defaultColumnVisibility","ids","id","checkColumnVisibility","shouldSkipColumnStats","hasNewTargetFields","current","previous","prevFields","COUNTS","StatsOperation","NUMERIC","ENUM","SUB_TYPE_FIELD","buildMetricTargets","entity","attribs","extraFields","isVisible","isActive","targets","subTypeField","field","attrib","type"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAMA,IAAe,CAACC,MAA0C;AAC9D,QAAMC,IAAID,GAAK;AACf,SAAO,MAAM,QAAQC,CAAC,IAAIA,IAAIA,IAAI,CAACA,CAAC,IAAI,CAAA;AAC1C,GAEaC,IAAkB,CAC7BC,GACAC,GACAC,MACY;AACZ,QAAMC,IAAOF,IAAkBD,CAAQ,GACjCI,IAAQF,IAAsBF,CAAQ;AAC5C,SAAIG,MAAS,UAAUC,MAAU,SAAe,KACzCD,KAAQ,QAAQC,KAAS;AAClC,GAMaC,IAAmB,CAC9BJ,GACAC,GACAI,GACAC,MACY;AACZ,QAAMC,wBAAU,IAAI;AAAA,IAClB,GAAG,OAAO,KAAKP,KAAmB,EAAE;AAAA,IACpC,GAAG,OAAO,KAAKC,KAAuB,CAAA,CAAE;AAAA,EAAA,CACzC;AACD,aAAWO,KAAMD;AACf,QAAI,EAAAF,KAAoB,CAACI,EAAsBJ,GAAkBG,GAAIF,CAAuB,MAGxFR,EAAgBU,GAAIR,GAAiBC,CAAmB;AAAG,aAAO;AAExE,SAAO;AACT,GAMaS,KAAwB,CACnCV,GACAC,GACAI,GACAC,MAEAL,GAAsB,SAAY,UAClC,CAACG,EAAiBJ,GAAiBC,GAAqBI,GAAkBC,CAAuB,GAGtFK,KAAqB,CAACC,GAAsBC,MAAmC;AAC1F,MAAI,CAACD,EAAS,QAAO;AACrB,MAAI,CAACC,EAAU,QAAO;AACtB,QAAMC,IAAa,IAAI,IAAInB,EAAakB,CAAQ,EAAE,IAAI,CAAChB,MAAMA,EAAE,KAAK,CAAC;AACrE,SAAOF,EAAaiB,CAAO,EAAE,KAAK,CAACf,MAAM,CAACiB,EAAW,IAAIjB,EAAE,KAAK,CAAC;AACnE,GAEMkB,IAA2B,CAACC,EAAe,QAAQA,EAAe,SAAS,GAE3EC,IAA4B;AAAA,EAChCD,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AACjB,GAEME,IAAyB;AAAA,EAC7BF,EAAe;AAAA,EACfA,EAAe;AAAA,EACfA,EAAe;AACjB,GAIMG,IAAqD;AAAA,EACzD,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AACX,GA2BaC,KAAqB,CAAC;AAAA,EACjC,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,kBAAAjB;AAAA,EACA,yBAAAC;AAAA,EACA,iBAAAN;AAAA,EACA,qBAAAC;AAAA,EACA,aAAAsB,IAAc,CAAA;AAChB,MAA8C;AAC5C,QAAMC,IAAY,CAACzB,MACjBU,EAAsBJ,GAAkBN,GAAUO,CAAuB,GACtEmB,IAAW,CAAC1B,MACfyB,EAAUzB,CAAQ,KAAKD,EAAgBC,GAAUC,GAAiBC,CAAmB,GAEjFyB,IAA0B,CAAA;AAChC,EAAIL,MAAW,YAGbK,EAAQ,KAAK,EAAE,OAAO,UAAU,cAAcD,EAAS,QAAQ,IAAIP,IAAOH,GAAQ,KAGlFW,EAAQ,KAAK,EAAE,OAAO,QAAQ,cAAcX,GAAQ,GAChDU,EAAS,QAAQ,KAAGC,EAAQ,KAAK,EAAE,OAAO,UAAU,cAAcR,GAAM,IAE1EO,EAAS,MAAM,KAAGC,EAAQ,KAAK,EAAE,OAAO,QAAQ,cAAcR,GAAM,GACpEG,MAAW,UAAUI,EAAS,WAAW,KAC3CC,EAAQ,KAAK,EAAE,OAAO,aAAa,cAAcR,GAAM;AAGzD,QAAMS,IAAeR,EAAeE,CAAM;AAC1C,EAAIM,KAAgBF,EAAS,SAAS,KACpCC,EAAQ,KAAK,EAAE,OAAOC,GAAc,cAAcT,GAAM;AAG1D,aAAWU,KAASL;AAClB,IAAAG,EAAQ,KAAK,EAAE,OAAAE,GAAO,cAAcV,GAAM;AAG5C,aAAWW,KAAUP,GAAS;AAE5B,QADIO,EAAO,SAAS,CAACA,EAAO,MAAM,SAASR,CAAM,KAC7C,CAACI,EAAS,UAAUI,EAAO,IAAI,EAAE,EAAG;AAExC,QAAID,IAAQ,UAAUC,EAAO,IAAI;AACjC,IAAI,CAAC,UAAU,MAAM,EAAE,SAASR,CAAM,MACpCO,IAAQ,wBAAwBC,EAAO,IAAI;AAE7C,UAAMC,IAAOD,EAAO,MAAM;AAC1B,IAAIC,MAAS,aAAaA,MAAS,UACjCJ,EAAQ,KAAK,EAAE,OAAAE,GAAO,cAAcX,GAAS,IACpCa,MAAS,YAClBJ,EAAQ,KAAK,EAAE,OAAAE,GAAO,cAAcC,EAAO,MAAM,MAAM,SAASX,IAAOH,EAAA,CAAQ;AAAA,EAEnF;AAEA,SAAOW;AACT;"}
|
|
1
|
+
{"version":3,"file":"metricTargets.es.js","sources":["../../../../../../src/api/queries/columnStats/metricTargets.ts"],"sourcesContent":["import type { VisibilityState } from '@tanstack/react-table'\nimport { StatsOperation } from '@shared/api/generated'\nimport { checkColumnVisibility } from '@shared/containers/ProjectTreeTable/utils/checkColumnVisibility'\nimport type { SummaryCalc, RowScope } from '@shared/containers/ProjectTreeTable/types/summaryTypes'\n\nexport type MetricTarget = {\n field: string // column or dot-path for JSONB, e.g. 'status' / 'attrib.fps'\n aggregations: StatsOperation[]\n}\n\nexport type StatsEntity = 'folder' | 'task' | 'product' | 'version'\n\n// matches both MetricTarget[] and the codegen'd single-or-array variables type\ntype TargetsArg = { targets?: { field: string }[] | { field: string } | null }\nconst targetFields = (arg?: TargetsArg): { field: string }[] => {\n const t = arg?.targets\n return Array.isArray(t) ? t : t ? [t] : []\n}\n\nexport const isSummaryActive = (\n columnId: string,\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n): boolean => {\n const calc = columnSummaries?.[columnId]\n const scope = columnSummaryScopes?.[columnId]\n if (calc === 'none' || scope === 'none') return false\n return calc != null || scope != null\n}\n\n// True when at least one *visible* column has an active summary — lets callers\n// skip the whole column-stats query when the user has every summary switched off.\n// Visibility matters: a hidden column can still carry a stale summary value, but\n// buildMetricTargets skips it, so it must not keep the query alive either.\nexport const anySummaryActive = (\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n columnVisibility?: VisibilityState,\n defaultColumnVisibility?: VisibilityState,\n): boolean => {\n const ids = new Set([\n ...Object.keys(columnSummaries ?? {}),\n ...Object.keys(columnSummaryScopes ?? {}),\n ])\n for (const id of ids) {\n if (columnVisibility && !checkColumnVisibility(columnVisibility, id, defaultColumnVisibility)) {\n continue\n }\n if (isSummaryActive(id, columnSummaries, columnSummaryScopes)) return true\n }\n return false\n}\n\n// The main count (name column) is on by default, so the footer always has at\n// least that to show. Skip the stats fetch only when the user has explicitly\n// turned the name count off too AND no other column has an active summary —\n// otherwise the name cell has no data and can't be re-enabled.\nexport const shouldSkipColumnStats = (\n columnSummaries?: Record<string, SummaryCalc>,\n columnSummaryScopes?: Record<string, RowScope>,\n columnVisibility?: VisibilityState,\n defaultColumnVisibility?: VisibilityState,\n): boolean =>\n columnSummaryScopes?.['name'] === 'none' &&\n !anySummaryActive(columnSummaries, columnSummaryScopes, columnVisibility, defaultColumnVisibility)\n\n// refetch only when a target was added — hiding a column needs no query\nexport const hasNewTargetFields = (current?: TargetsArg, previous?: TargetsArg): boolean => {\n if (!current) return false\n if (!previous) return true\n const prevFields = new Set(targetFields(previous).map((t) => t.field))\n return targetFields(current).some((t) => !prevFields.has(t.field))\n}\n\nconst COUNTS: StatsOperation[] = [StatsOperation.Filled, StatsOperation.NotFilled]\n// FILLED rides along so combined-scope averages can be weighted exactly\nconst NUMERIC: StatsOperation[] = [\n StatsOperation.Min,\n StatsOperation.Max,\n StatsOperation.Avg,\n StatsOperation.Sum,\n StatsOperation.Filled,\n StatsOperation.NotFilled,\n]\n// enum columns: counts power the fallback display, distribution the colored bar\nconst ENUM: StatsOperation[] = [\n StatsOperation.Filled,\n StatsOperation.NotFilled,\n StatsOperation.Distribution,\n]\n\n// The table's unified subType column per entity (result columnName maps back\n// to subType via COLUMN_ALIASES in columnStats).\nconst SUB_TYPE_FIELD: Record<StatsEntity, string | null> = {\n folder: 'folder_type',\n task: 'task_type',\n product: 'product_type',\n version: null,\n}\n\n// Structural subset of ProjectTableAttribute — two near-identical versions of\n// that type exist (types/index vs hooks/useAttributesList, data.type optional\n// in the latter); only these fields are needed here so accept both.\ntype AttribFieldLike = {\n name: string\n scope?: string[] | null\n data?: { type?: string; enum?: unknown[] }\n}\n\ntype BuildMetricTargetsArgs = {\n entity: StatsEntity\n attribs: AttribFieldLike[]\n columnVisibility: VisibilityState\n // resolved the same way the table resolves it (opt-in): a column absent from\n // both maps is hidden, so it must NOT be aggregated\n defaultColumnVisibility?: VisibilityState\n columnSummaries?: Record<string, SummaryCalc>\n columnSummaryScopes?: Record<string, RowScope>\n extraFields?: string[] // visible, summary-active page columns, e.g. 'product_base_type'\n}\n\n// Targets for the footer over the columns the user can actually see.\n// Skipped on purpose — the backend errors on these, and one bad target fails\n// the whole query, killing every other column's stats too:\n// datetime (\"cannot cast type timestamp with time zone to numeric\") and\n// boolean attribs (\"operator does not exist: text = boolean\").\nexport const buildMetricTargets = ({\n entity,\n attribs,\n columnVisibility,\n defaultColumnVisibility,\n columnSummaries,\n columnSummaryScopes,\n extraFields = [],\n}: BuildMetricTargetsArgs): MetricTarget[] => {\n const isVisible = (columnId: string) =>\n checkColumnVisibility(columnVisibility, columnId, defaultColumnVisibility)\n const isActive = (columnId: string) =>\n isVisible(columnId) && isSummaryActive(columnId, columnSummaries, columnSummaryScopes)\n\n const targets: MetricTarget[] = []\n if (entity === 'version') {\n // versions have no `name` column (display name derives from the version\n // number) — status is non-null and doubles as the row-count anchor, so it\n targets.push({ field: 'status', aggregations: isActive('status') ? ENUM : COUNTS })\n } else {\n // name counts always — they feed the main folders/tasks count cell\n targets.push({ field: 'name', aggregations: COUNTS })\n if (isActive('status')) targets.push({ field: 'status', aggregations: ENUM })\n }\n if (isActive('tags')) targets.push({ field: 'tags', aggregations: ENUM })\n if (entity === 'task' && isActive('assignees')) {\n targets.push({ field: 'assignees', aggregations: ENUM })\n }\n\n const subTypeField = SUB_TYPE_FIELD[entity]\n if (subTypeField && isActive('subType')) {\n targets.push({ field: subTypeField, aggregations: ENUM })\n }\n\n for (const field of extraFields) {\n targets.push({ field, aggregations: ENUM })\n }\n\n for (const attrib of attribs) {\n if (attrib.scope && !attrib.scope.includes(entity)) continue\n if (!isActive(`attrib_${attrib.name}`)) continue\n\n let field = `attrib.${attrib.name}`\n if (['folder', 'task'].includes(entity)) {\n field = `inherited_attributes.${attrib.name}`\n }\n const type = attrib.data?.type\n if (type === 'integer' || type === 'float') {\n targets.push({ field, aggregations: NUMERIC })\n } else if (type === 'string') {\n targets.push({ field, aggregations: attrib.data?.enum?.length ? ENUM : COUNTS })\n } else if (type === 'list_of_strings' || type === 'list_of_integers') {\n // backend buckets the whole array as one serialized value; normalizeDistribution unnests it\n targets.push({ field, aggregations: ENUM })\n }\n }\n\n return targets\n}\n"],"names":["targetFields","arg","t","isSummaryActive","columnId","columnSummaries","columnSummaryScopes","calc","scope","anySummaryActive","columnVisibility","defaultColumnVisibility","ids","id","checkColumnVisibility","shouldSkipColumnStats","hasNewTargetFields","current","previous","prevFields","COUNTS","StatsOperation","NUMERIC","ENUM","SUB_TYPE_FIELD","buildMetricTargets","entity","attribs","extraFields","isVisible","isActive","targets","subTypeField","field","attrib","type"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEntity.cjs.js","sources":["../../../../../../src/api/queries/entities/getEntity.ts"],"sourcesContent":["// @ts-nocheck\nimport {
|
|
1
|
+
{"version":3,"file":"getEntity.cjs.js","sources":["../../../../../../src/api/queries/entities/getEntity.ts"],"sourcesContent":["// @ts-nocheck\nimport { gqlApi } from '@shared/api/generated'\nimport type { GetSearchedTasksQuery } from '@shared/api/generated'\nimport {\n PRODUCT_TILE_FRAGMENT,\n FOLDER_TILE_FRAGMENT,\n VERSION_TILE_FRAGMENT,\n TASK_TILE_FRAGMENT,\n} from './entityQueries'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst buildEventTileQuery = (type) => {\n return `\n query EventTile($projectName: String!, $id: String!) {\n project(name: $projectName) {\n ${type}(id: $id) {\n id\n name\n status\n updatedAt\n }\n }\n }\n `\n}\n\nconst buildEntityTilesQuery = (entities) => {\n // const entities = {[type]: [id, id, id]}\n\n const typesQuery = Object.entries(entities).reduce(\n (acc, [type, ids]) =>\n acc +\n ` ${type}s(ids: ${JSON.stringify(ids)}) {\n edges {\n node {\n ...${type}TileFragment\n }\n }\n }\n `,\n '',\n )\n\n let query = `\n query EntityTiles($projectName: String!) {\n project(name: $projectName) {\n ${typesQuery}\n }\n }\n `\n\n const fragments = {\n folder: FOLDER_TILE_FRAGMENT,\n product: PRODUCT_TILE_FRAGMENT,\n version: VERSION_TILE_FRAGMENT,\n task: TASK_TILE_FRAGMENT,\n }\n\n // Add fragments\n for (const type in entities) {\n query += fragments[type]\n }\n\n return query\n}\n\nfunction getNonObjectValue(value) {\n if (typeof value !== 'object' || value === null) {\n return value\n }\n\n // If value is an object, get the first non-object value from its properties\n let keys = Object.keys(value)\n if (keys.length > 0) {\n return getNonObjectValue(value[keys[0]])\n }\n\n // If no non-object value found, return undefined\n return undefined\n}\n\nexport const formatEntityTiles = (project, entities) => {\n // data = {project: {folders: {edges: [{node: {id}}]}}}\n\n // if entities is an array, convert to object\n if (Array.isArray(entities)) {\n const obj = {}\n for (const entity of entities) {\n obj[entity] = []\n }\n entities = obj\n }\n\n const allEntities = []\n for (const type in entities) {\n if (!project) continue\n let entities = project[type + 's']\n // If no entities of this type\n if (!entities) continue\n entities = entities.edges.map(({ node }) => ({ ...node, type }))\n allEntities.push(...entities)\n }\n\n // loop through each entity and child and if it is an array or object, use first child value as value\n for (const entity of allEntities) {\n for (const attrib in entity) {\n if (!entity[attrib]) continue\n if (Array.isArray(entity[attrib])) {\n entity[attrib] = entity[attrib][0]\n } else if (typeof entity[attrib] === 'object') {\n entity[attrib] = getNonObjectValue(Object.values(entity[attrib])[0])\n }\n // if entity type is version, add 0 prefix to version number 1 -> v001, 12 -> v012\n if (entity.type === 'version' && attrib === 'version') {\n entity[attrib] = 'v' + entity[attrib].toString().padStart(3, '0')\n }\n }\n entity.thumbnailEntityType = entity.type\n if (entity.type === 'product') {\n entity.thumbnailEntityId = entity.latestVersion.thumbnailEntityId\n entity.thumbnailId = entity.latestVersion.thumbnailId\n entity.thumbnailEntityType = 'version'\n }\n }\n\n return allEntities\n}\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getEventTile: build.query({\n query: ({ projectName, id, type }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: buildEventTileQuery(type),\n variables: { projectName, id },\n },\n }),\n transformResponse: (response, meta, { type }) => response.data?.project[type],\n }),\n getEntityTiles: build.query({\n query: ({ projectName, entities }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: buildEntityTilesQuery(entities),\n variables: { projectName },\n },\n }),\n transformResponse: (response, meta, { entities }) =>\n formatEntityTiles(response.data?.project, entities),\n }),\n getEntity: build.query({\n query: ({ projectName, entityType, entityId }) => ({\n url: `/api/projects/${projectName}/${entityType}s/${entityId}`,\n }),\n providesTags: (res, error, { entityId }) => [{ type: 'entity', id: entityId }],\n }),\n }),\n overrideExisting: true,\n})\n\nconst getEntityApi = injectedApi.enhanceEndpoints({\n endpoints: {\n GetProductVersions: {},\n },\n})\n\nexport const {\n useGetEventTileQuery,\n useGetEntityTilesQuery,\n useGetEntityQuery,\n useLazyGetEntityQuery,\n useGetProductVersionsQuery,\n useGetSearchedEntitiesInfiniteQuery,\n} = getEntityApi\nexport default getEntityApi\n"],"names":["buildEventTileQuery","type","buildEntityTilesQuery","entities","query","acc","ids","fragments","FOLDER_TILE_FRAGMENT","PRODUCT_TILE_FRAGMENT","VERSION_TILE_FRAGMENT","TASK_TILE_FRAGMENT","getNonObjectValue","value","keys","formatEntityTiles","project","obj","entity","allEntities","node","attrib","injectedApi","gqlApi","build","projectName","id","response","meta","entityType","entityId","res","error","getEntityApi","useGetEventTileQuery","useGetEntityTilesQuery","useGetEntityQuery","useLazyGetEntityQuery","useGetProductVersionsQuery","useGetSearchedEntitiesInfiniteQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEntity.es.js","sources":["../../../../../../src/api/queries/entities/getEntity.ts"],"sourcesContent":["// @ts-nocheck\nimport {
|
|
1
|
+
{"version":3,"file":"getEntity.es.js","sources":["../../../../../../src/api/queries/entities/getEntity.ts"],"sourcesContent":["// @ts-nocheck\nimport { gqlApi } from '@shared/api/generated'\nimport type { GetSearchedTasksQuery } from '@shared/api/generated'\nimport {\n PRODUCT_TILE_FRAGMENT,\n FOLDER_TILE_FRAGMENT,\n VERSION_TILE_FRAGMENT,\n TASK_TILE_FRAGMENT,\n} from './entityQueries'\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/query'\n\nconst buildEventTileQuery = (type) => {\n return `\n query EventTile($projectName: String!, $id: String!) {\n project(name: $projectName) {\n ${type}(id: $id) {\n id\n name\n status\n updatedAt\n }\n }\n }\n `\n}\n\nconst buildEntityTilesQuery = (entities) => {\n // const entities = {[type]: [id, id, id]}\n\n const typesQuery = Object.entries(entities).reduce(\n (acc, [type, ids]) =>\n acc +\n ` ${type}s(ids: ${JSON.stringify(ids)}) {\n edges {\n node {\n ...${type}TileFragment\n }\n }\n }\n `,\n '',\n )\n\n let query = `\n query EntityTiles($projectName: String!) {\n project(name: $projectName) {\n ${typesQuery}\n }\n }\n `\n\n const fragments = {\n folder: FOLDER_TILE_FRAGMENT,\n product: PRODUCT_TILE_FRAGMENT,\n version: VERSION_TILE_FRAGMENT,\n task: TASK_TILE_FRAGMENT,\n }\n\n // Add fragments\n for (const type in entities) {\n query += fragments[type]\n }\n\n return query\n}\n\nfunction getNonObjectValue(value) {\n if (typeof value !== 'object' || value === null) {\n return value\n }\n\n // If value is an object, get the first non-object value from its properties\n let keys = Object.keys(value)\n if (keys.length > 0) {\n return getNonObjectValue(value[keys[0]])\n }\n\n // If no non-object value found, return undefined\n return undefined\n}\n\nexport const formatEntityTiles = (project, entities) => {\n // data = {project: {folders: {edges: [{node: {id}}]}}}\n\n // if entities is an array, convert to object\n if (Array.isArray(entities)) {\n const obj = {}\n for (const entity of entities) {\n obj[entity] = []\n }\n entities = obj\n }\n\n const allEntities = []\n for (const type in entities) {\n if (!project) continue\n let entities = project[type + 's']\n // If no entities of this type\n if (!entities) continue\n entities = entities.edges.map(({ node }) => ({ ...node, type }))\n allEntities.push(...entities)\n }\n\n // loop through each entity and child and if it is an array or object, use first child value as value\n for (const entity of allEntities) {\n for (const attrib in entity) {\n if (!entity[attrib]) continue\n if (Array.isArray(entity[attrib])) {\n entity[attrib] = entity[attrib][0]\n } else if (typeof entity[attrib] === 'object') {\n entity[attrib] = getNonObjectValue(Object.values(entity[attrib])[0])\n }\n // if entity type is version, add 0 prefix to version number 1 -> v001, 12 -> v012\n if (entity.type === 'version' && attrib === 'version') {\n entity[attrib] = 'v' + entity[attrib].toString().padStart(3, '0')\n }\n }\n entity.thumbnailEntityType = entity.type\n if (entity.type === 'product') {\n entity.thumbnailEntityId = entity.latestVersion.thumbnailEntityId\n entity.thumbnailId = entity.latestVersion.thumbnailId\n entity.thumbnailEntityType = 'version'\n }\n }\n\n return allEntities\n}\n\nconst injectedApi = gqlApi.injectEndpoints({\n endpoints: (build) => ({\n getEventTile: build.query({\n query: ({ projectName, id, type }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: buildEventTileQuery(type),\n variables: { projectName, id },\n },\n }),\n transformResponse: (response, meta, { type }) => response.data?.project[type],\n }),\n getEntityTiles: build.query({\n query: ({ projectName, entities }) => ({\n url: '/graphql',\n method: 'POST',\n body: {\n query: buildEntityTilesQuery(entities),\n variables: { projectName },\n },\n }),\n transformResponse: (response, meta, { entities }) =>\n formatEntityTiles(response.data?.project, entities),\n }),\n getEntity: build.query({\n query: ({ projectName, entityType, entityId }) => ({\n url: `/api/projects/${projectName}/${entityType}s/${entityId}`,\n }),\n providesTags: (res, error, { entityId }) => [{ type: 'entity', id: entityId }],\n }),\n }),\n overrideExisting: true,\n})\n\nconst getEntityApi = injectedApi.enhanceEndpoints({\n endpoints: {\n GetProductVersions: {},\n },\n})\n\nexport const {\n useGetEventTileQuery,\n useGetEntityTilesQuery,\n useGetEntityQuery,\n useLazyGetEntityQuery,\n useGetProductVersionsQuery,\n useGetSearchedEntitiesInfiniteQuery,\n} = getEntityApi\nexport default getEntityApi\n"],"names":["buildEventTileQuery","type","buildEntityTilesQuery","entities","query","acc","ids","fragments","FOLDER_TILE_FRAGMENT","PRODUCT_TILE_FRAGMENT","VERSION_TILE_FRAGMENT","TASK_TILE_FRAGMENT","getNonObjectValue","value","keys","formatEntityTiles","project","obj","entity","allEntities","node","attrib","injectedApi","gqlApi","build","projectName","id","response","meta","entityType","entityId","res","error","getEntityApi","useGetEventTileQuery","useGetEntityTilesQuery","useGetEntityQuery","useLazyGetEntityQuery","useGetProductVersionsQuery","useGetSearchedEntitiesInfiniteQuery"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");const Q=require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/dataImport.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const w=require("../../../util/thumbnailWebsocket.cjs.js");require("../
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../base/client.cjs.js");const Q=require("../../generated/graphql.cjs.js");require("../../generated/graphqlLinks.cjs.js");require("../../generated/access.cjs.js");require("../../generated/actions.cjs.js");require("../../generated/activityFeed.cjs.js");require("../../generated/addons.cjs.js");require("../../generated/anatomy.cjs.js");require("../../generated/attributes.cjs.js");require("../../generated/authentication.cjs.js");require("../../generated/bundles.cjs.js");require("../../generated/configuration.cjs.js");require("../../generated/dataImport.cjs.js");require("../../generated/desktop.cjs.js");require("../../generated/entityLists.cjs.js");require("../../generated/events.cjs.js");require("../../generated/files.cjs.js");require("../../generated/folders.cjs.js");require("../../generated/inbox.cjs.js");require("../../generated/links.cjs.js");require("../../generated/market.cjs.js");require("../../generated/onboarding.cjs.js");require("../../generated/operations.cjs.js");require("../../generated/products.cjs.js");require("../../generated/projectDashboard.cjs.js");require("../../generated/projects.cjs.js");require("../../generated/projectFolders.cjs.js");require("../../generated/reviewables.cjs.js");require("../../generated/services.cjs.js");require("../../generated/system.cjs.js");require("../../generated/tasks.cjs.js");require("../../generated/teams.cjs.js");require("../../generated/thumbnails.cjs.js");require("../../generated/uRIs.cjs.js");require("../../generated/users.cjs.js");require("../../generated/versions.cjs.js");require("../../generated/workfiles.cjs.js");require("../../generated/ynputCloud.cjs.js");require("../../generated/grouping.cjs.js");require("../../generated/views.cjs.js");require("lodash");require("react-toastify");require("uuid");const w=require("../../../util/thumbnailWebsocket.cjs.js");require("../users/updateUsers.cjs.js");const b=require("../../../util/realtimeUpdatesUtils.cjs.js"),k=require("../../../util/pubsub.cjs.js"),j=require("./transformDetailsPanelData.cjs.js"),N=Q.api.enhanceEndpoints({endpoints:{GetDetailsPanelFolder:{transformResponse:(o,u,r)=>{const{projectName:s}=r,e=o?.project?.folder;return e?j.transformDetailsPanelQueriesData({projectName:s,entity:e,entityType:"folder"}):null}},GetDetailsPanelTask:{transformResponse:(o,u,r)=>{const{projectName:s}=r,e=o?.project?.task;return e?j.transformDetailsPanelQueriesData({projectName:s,entity:e,entityType:"task"}):null}},GetDetailsPanelVersion:{transformResponse:(o,u,r)=>{const{projectName:s}=r,e=o?.project?.version;return e?j.transformDetailsPanelQueriesData({projectName:s,entity:e,entityType:"version"}):null}},GetDetailsPanelRepresentation:{transformResponse:(o,u,r)=>{const{projectName:s}=r,e=o?.project?.representation;return e?j.transformDetailsPanelQueriesData({projectName:s,entity:e,entityType:"representation"}):null}}}}),G=o=>{switch(o){case"task":return"GetDetailsPanelTask";case"version":return"GetDetailsPanelVersion";case"folder":return"GetDetailsPanelFolder";case"representation":return"GetDetailsPanelRepresentation"}},S=N.injectEndpoints({endpoints:o=>({getEntitiesDetailsPanel:o.query({async queryFn({entities:u=[],entityType:r},{dispatch:s}){if(!j.detailsPanelEntityTypes.includes(r))return{error:{status:"CUSTOM_ERROR",error:"Entity type not supported"}};try{const e=u.map(p=>s(N.endpoints[G(r)].initiate({projectName:p.projectName,entityId:p.id},{forceRefetch:!0})));return{data:(await Promise.all(e)).filter(p=>!!p.data).map(p=>p.data)}}catch(e){return console.error(e),{error:{status:"FETCH_ERROR",error:e.message}}}},async onCacheEntryAdded({entityType:u},{updateCachedData:r,cacheDataLoaded:s,cacheEntryRemoved:e,dispatch:T,getCacheEntry:R}){let p,I;const g=async(h,f)=>{const E=R().data??[],y=new Set(E.map(i=>`${i.projectName}:${i.id}`)),P=new Map,c=[];h.forEach(({topic:i,message:t})=>{const a=t.summary?.entityId,n=t.project;if(!a||!n)return;const m=`${n}:${a}`;if(!y.has(m))return;const d=i.split(".")[2]?.replace("_changed",""),q=b.getSupportedEntityPatch(d,t.summary,b.REALTIME_TASK_SUPPORTED_VALUE_FIELDS);q?c.push({id:a,projectName:n,field:q.field,value:q.value}):P.set(m,{id:a,projectName:n})}),c.length&&r(i=>{c.forEach(({id:t,projectName:a,field:n,value:m})=>{const d=i.find(q=>q.id===t&&q.projectName===a);d&&(Object.assign(d,{...n==="status"||n==="tags"?{[n]:m}:{},...n==="type"?{entitySubType:m}:{}}),n==="assignees"&&d.task&&(d.task.assignees=m),n==="type"&&d.task&&(d.task.taskType=m))})});const l=Array.from(P.values());if(!l.length||l.length>b.REALTIME_REST_CALL_LIMIT)return;await b.waitForRealtimeJitter();const D=await Promise.all(l.map(async i=>{try{const t=await T(N.endpoints[G(u)].initiate({projectName:i.projectName,entityId:i.id},{forceRefetch:!0}));if(t.status!=="fulfilled")return console.error(t?.error||"No entity found"),null;const a=t.data;return a||(console.error("No entity found"),null)}catch(t){return console.error("Entity task realtime update failed",t),null}}));f()&&r(i=>{D.forEach(t=>{if(!t)return;const a=i.findIndex(n=>n.id===t.id&&n.projectName===t.projectName);if(a===-1){console.error("Entity not found in cache");return}i[a]=t})})},_=b.createRealtimeBatcher(g,({topic:h,message:f})=>`${f.project}:${f.summary?.entityId}:${h}`);try{await s,I=w.subscribeToThumbnailUpdates(E=>{const y=R().data??[],P=E.filter(c=>y.some(l=>l.id===c.summary.entityId&&l.projectName===c.project));P.length!==0&&r(c=>{P.forEach(l=>{const D=c.findIndex(i=>i.id===l.summary.entityId);D!==-1&&c[D]&&l.summary.thumbnailHash&&(c[D].thumbnailHash=l.summary.thumbnailHash)})})},[u]);const h=(E,y)=>{!y?.project||!y?.summary?.entityId||_.add({topic:E,message:y})},f=`entity.${u}`;p=k.subscribe(f,h)}catch{}await e,k.unsubscribe(p),I&&I(),_.clear()},providesTags:(u,r,{entities:s,entityType:e})=>[...s.map(({id:T})=>({id:T,type:"entities"})),{type:"entities",id:e.toUpperCase()},{type:"entities",id:"LIST"}]})})}),{useGetEntitiesDetailsPanelQuery:L,useLazyGetEntitiesDetailsPanelQuery:A}=S;exports.detailsPanelQueries=S;exports.useGetEntitiesDetailsPanelQuery=L;exports.useLazyGetEntitiesDetailsPanelQuery=A;
|
|
2
2
|
//# sourceMappingURL=getEntityPanel.cjs.js.map
|