@ynput/ayon-frontend-shared 0.3.6 → 0.3.7

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.
Files changed (105) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +1 -1
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.es.js +1 -1
  5. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  6. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +1 -1
  7. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  8. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +1 -1
  9. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  10. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +1 -1
  11. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  12. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +1 -1
  13. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  14. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +1 -1
  15. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  16. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +1 -1
  17. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  18. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +1 -1
  19. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  20. package/dist/shared/src/components/RenameForm/RenameForm.es.js +1 -1
  21. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  22. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +1 -1
  23. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  24. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +1 -1
  25. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  26. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +1 -1
  27. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  28. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +1 -1
  29. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  30. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  31. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +13 -28
  32. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  33. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  34. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +1 -1
  35. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  36. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +1 -1
  37. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  38. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +1 -1
  39. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  40. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  41. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +93 -91
  42. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  43. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  44. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +1 -1
  45. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  46. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +1 -1
  47. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  48. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +1 -1
  49. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  50. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +1 -1
  51. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  52. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +1 -1
  53. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  54. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +1 -1
  55. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  56. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +1 -1
  57. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  58. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +1 -1
  59. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  60. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +1 -1
  61. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  62. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +1 -1
  63. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  64. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +1 -1
  65. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  66. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +1 -1
  67. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  68. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +1 -1
  69. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  70. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +1 -1
  71. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  72. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +1 -1
  73. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  74. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +1 -1
  75. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  76. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  77. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  78. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  79. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +46 -43
  80. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  81. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  82. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +1 -1
  83. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  84. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +1 -1
  85. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  86. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  87. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +22 -21
  88. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  89. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  90. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +1 -1
  91. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  92. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +1 -1
  93. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  94. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +1 -1
  95. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  96. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +1 -1
  97. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  98. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  99. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  100. package/dist/shared/src/context/WebsocketContext.es.js +1 -1
  101. package/dist/types/components/SubtasksManager/SubtasksManagerWrapper.d.ts +4 -2
  102. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +2 -0
  103. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +3 -1
  104. package/dist/types/context/DetailsPanelContext.d.ts +2 -0
  105. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTableContext.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectTableContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { EntityMap, TableRow } from '../types/table'\nimport {\n FindInheritedValueFromAncestors,\n GetAncestorsOf,\n GetInheritedDependents,\n FindNonInheritedValues,\n} from '../hooks/useFolderRelationships'\nimport { RowId } from '../utils/cellUtils'\n\nimport { ProjectTableProviderProps } from './ProjectTableProvider'\n\nexport type ToggleExpandAll = (rowIds: RowId[], expand?: boolean) => void\nexport type ToggleExpands = (rowIds: RowId[], expand?: boolean) => void\n\nexport interface ProjectTableContextType {\n isInitialized: ProjectTableProviderProps['isInitialized']\n isLoading: ProjectTableProviderProps['isLoading']\n users: ProjectTableProviderProps['users']\n // Attributes\n attribFields: ProjectTableProviderProps['attribFields']\n attribFieldsScoped: ProjectTableProviderProps['attribFields']\n error?: string\n scopes: ProjectTableProviderProps['scopes']\n\n // Data\n tableData: TableRow[]\n tasksMap: ProjectTableProviderProps['tasksMap']\n foldersMap: ProjectTableProviderProps['foldersMap']\n entitiesMap: ProjectTableProviderProps['entitiesMap']\n fetchNextPage: ProjectTableProviderProps['fetchNextPage']\n reloadTableData: ProjectTableProviderProps['reloadTableData']\n getEntityById: (id: string, field?: string) => EntityMap | undefined // if the entity is not found, we explicity search for the field\n\n // grouping\n groups: ProjectTableProviderProps['groups']\n\n // Filters\n queryFilters: ProjectTableProviderProps['queryFilters']\n\n // Hierarchy\n showHierarchy: ProjectTableProviderProps['showHierarchy']\n updateShowHierarchy: ProjectTableProviderProps['updateShowHierarchy']\n\n // Expanded state\n expanded: ProjectTableProviderProps['expanded']\n setExpanded: ProjectTableProviderProps['setExpanded']\n toggleExpanded: ProjectTableProviderProps['toggleExpanded']\n updateExpanded: ProjectTableProviderProps['updateExpanded']\n toggleExpandAll: ToggleExpandAll\n toggleExpands: ToggleExpands // expand/collapse multiple rows at once\n\n // Folder Relationships\n getInheritedDependents: GetInheritedDependents\n findInheritedValueFromAncestors: FindInheritedValueFromAncestors\n findNonInheritedValues: FindNonInheritedValues\n getAncestorsOf: GetAncestorsOf\n\n // Context menu\n contextMenuItems: ProjectTableProviderProps['contextMenuItems']\n\n // Powerpack context\n powerpack?: ProjectTableProviderProps['powerpack']\n\n // remote modules\n modules: ProjectTableProviderProps['modules']\n\n // player\n playerOpen?: ProjectTableProviderProps['playerOpen']\n onOpenPlayer?: ProjectTableProviderProps['onOpenPlayer']\n\n // views\n onResetView?: () => void\n}\n\nexport const ProjectTableContext = createContext<ProjectTableContextType | undefined>(undefined)\n\nexport const useProjectTableContext = () => {\n const context = useContext(ProjectTableContext)\n if (!context) {\n throw new Error('useProjectTableContext must be used within a ProjectTableProvider')\n }\n return context\n}\n"],"names":["ProjectTableContext","createContext","useProjectTableContext","context","useContext"],"mappings":"yGA2EaA,EAAsBC,EAAAA,cAAmD,MAAS,EAElFC,EAAyB,IAAM,CAC1C,MAAMC,EAAUC,EAAAA,WAAWJ,CAAmB,EAC9C,GAAI,CAACG,EACH,MAAM,IAAI,MAAM,mEAAmE,EAErF,OAAOA,CACT"}
1
+ {"version":3,"file":"ProjectTableContext.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectTableContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { EntityMap, TableRow } from '../types/table'\nimport {\n FindInheritedValueFromAncestors,\n GetAncestorsOf,\n GetInheritedDependents,\n FindNonInheritedValues,\n} from '../hooks/useFolderRelationships'\nimport { RowId } from '../utils/cellUtils'\n\nimport { ProjectTableProviderProps } from './ProjectTableProvider'\nimport type { SubtasksManagerProps } from '@shared/components'\n\nexport type ToggleExpandAll = (rowIds: RowId[], expand?: boolean) => void\nexport type ToggleExpands = (rowIds: RowId[], expand?: boolean) => void\n\nexport interface ProjectTableContextType {\n isInitialized: ProjectTableProviderProps['isInitialized']\n isLoading: ProjectTableProviderProps['isLoading']\n users: ProjectTableProviderProps['users']\n // Attributes\n attribFields: ProjectTableProviderProps['attribFields']\n attribFieldsScoped: ProjectTableProviderProps['attribFields']\n error?: string\n scopes: ProjectTableProviderProps['scopes']\n\n // Data\n tableData: TableRow[]\n tasksMap: ProjectTableProviderProps['tasksMap']\n foldersMap: ProjectTableProviderProps['foldersMap']\n entitiesMap: ProjectTableProviderProps['entitiesMap']\n fetchNextPage: ProjectTableProviderProps['fetchNextPage']\n reloadTableData: ProjectTableProviderProps['reloadTableData']\n getEntityById: (id: string, field?: string) => EntityMap | undefined // if the entity is not found, we explicity search for the field\n\n // grouping\n groups: ProjectTableProviderProps['groups']\n\n // Filters\n queryFilters: ProjectTableProviderProps['queryFilters']\n\n // Hierarchy\n showHierarchy: ProjectTableProviderProps['showHierarchy']\n updateShowHierarchy: ProjectTableProviderProps['updateShowHierarchy']\n\n // Expanded state\n expanded: ProjectTableProviderProps['expanded']\n setExpanded: ProjectTableProviderProps['setExpanded']\n toggleExpanded: ProjectTableProviderProps['toggleExpanded']\n updateExpanded: ProjectTableProviderProps['updateExpanded']\n toggleExpandAll: ToggleExpandAll\n toggleExpands: ToggleExpands // expand/collapse multiple rows at once\n\n // Folder Relationships\n getInheritedDependents: GetInheritedDependents\n findInheritedValueFromAncestors: FindInheritedValueFromAncestors\n findNonInheritedValues: FindNonInheritedValues\n getAncestorsOf: GetAncestorsOf\n\n // Context menu\n contextMenuItems: ProjectTableProviderProps['contextMenuItems']\n\n // Powerpack context\n powerpack?: ProjectTableProviderProps['powerpack']\n\n // remote modules\n modules: ProjectTableProviderProps['modules']\n\n // SubtasksManager\n SubtasksManager?: React.ComponentType<SubtasksManagerProps>\n\n // player\n playerOpen?: ProjectTableProviderProps['playerOpen']\n onOpenPlayer?: ProjectTableProviderProps['onOpenPlayer']\n\n // views\n onResetView?: () => void\n}\n\nexport const ProjectTableContext = createContext<ProjectTableContextType | undefined>(undefined)\n\nexport const useProjectTableContext = () => {\n const context = useContext(ProjectTableContext)\n if (!context) {\n throw new Error('useProjectTableContext must be used within a ProjectTableProvider')\n }\n return context\n}\n"],"names":["ProjectTableContext","createContext","useProjectTableContext","context","useContext"],"mappings":"yGA+EaA,EAAsBC,EAAAA,cAAmD,MAAS,EAElFC,EAAyB,IAAM,CAC1C,MAAMC,EAAUC,EAAAA,WAAWJ,CAAmB,EAC9C,GAAI,CAACG,EACH,MAAM,IAAI,MAAM,mEAAmE,EAErF,OAAOA,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTableContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectTableContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { EntityMap, TableRow } from '../types/table'\nimport {\n FindInheritedValueFromAncestors,\n GetAncestorsOf,\n GetInheritedDependents,\n FindNonInheritedValues,\n} from '../hooks/useFolderRelationships'\nimport { RowId } from '../utils/cellUtils'\n\nimport { ProjectTableProviderProps } from './ProjectTableProvider'\n\nexport type ToggleExpandAll = (rowIds: RowId[], expand?: boolean) => void\nexport type ToggleExpands = (rowIds: RowId[], expand?: boolean) => void\n\nexport interface ProjectTableContextType {\n isInitialized: ProjectTableProviderProps['isInitialized']\n isLoading: ProjectTableProviderProps['isLoading']\n users: ProjectTableProviderProps['users']\n // Attributes\n attribFields: ProjectTableProviderProps['attribFields']\n attribFieldsScoped: ProjectTableProviderProps['attribFields']\n error?: string\n scopes: ProjectTableProviderProps['scopes']\n\n // Data\n tableData: TableRow[]\n tasksMap: ProjectTableProviderProps['tasksMap']\n foldersMap: ProjectTableProviderProps['foldersMap']\n entitiesMap: ProjectTableProviderProps['entitiesMap']\n fetchNextPage: ProjectTableProviderProps['fetchNextPage']\n reloadTableData: ProjectTableProviderProps['reloadTableData']\n getEntityById: (id: string, field?: string) => EntityMap | undefined // if the entity is not found, we explicity search for the field\n\n // grouping\n groups: ProjectTableProviderProps['groups']\n\n // Filters\n queryFilters: ProjectTableProviderProps['queryFilters']\n\n // Hierarchy\n showHierarchy: ProjectTableProviderProps['showHierarchy']\n updateShowHierarchy: ProjectTableProviderProps['updateShowHierarchy']\n\n // Expanded state\n expanded: ProjectTableProviderProps['expanded']\n setExpanded: ProjectTableProviderProps['setExpanded']\n toggleExpanded: ProjectTableProviderProps['toggleExpanded']\n updateExpanded: ProjectTableProviderProps['updateExpanded']\n toggleExpandAll: ToggleExpandAll\n toggleExpands: ToggleExpands // expand/collapse multiple rows at once\n\n // Folder Relationships\n getInheritedDependents: GetInheritedDependents\n findInheritedValueFromAncestors: FindInheritedValueFromAncestors\n findNonInheritedValues: FindNonInheritedValues\n getAncestorsOf: GetAncestorsOf\n\n // Context menu\n contextMenuItems: ProjectTableProviderProps['contextMenuItems']\n\n // Powerpack context\n powerpack?: ProjectTableProviderProps['powerpack']\n\n // remote modules\n modules: ProjectTableProviderProps['modules']\n\n // player\n playerOpen?: ProjectTableProviderProps['playerOpen']\n onOpenPlayer?: ProjectTableProviderProps['onOpenPlayer']\n\n // views\n onResetView?: () => void\n}\n\nexport const ProjectTableContext = createContext<ProjectTableContextType | undefined>(undefined)\n\nexport const useProjectTableContext = () => {\n const context = useContext(ProjectTableContext)\n if (!context) {\n throw new Error('useProjectTableContext must be used within a ProjectTableProvider')\n }\n return context\n}\n"],"names":["ProjectTableContext","createContext","useProjectTableContext","context","useContext"],"mappings":";AA2EO,MAAMA,IAAsBC,EAAmD,MAAS,GAElFC,IAAyB,MAAM;AAC1C,QAAMC,IAAUC,EAAWJ,CAAmB;AAC9C,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,mEAAmE;AAErF,SAAOA;AACT;"}
1
+ {"version":3,"file":"ProjectTableContext.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectTableContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { EntityMap, TableRow } from '../types/table'\nimport {\n FindInheritedValueFromAncestors,\n GetAncestorsOf,\n GetInheritedDependents,\n FindNonInheritedValues,\n} from '../hooks/useFolderRelationships'\nimport { RowId } from '../utils/cellUtils'\n\nimport { ProjectTableProviderProps } from './ProjectTableProvider'\nimport type { SubtasksManagerProps } from '@shared/components'\n\nexport type ToggleExpandAll = (rowIds: RowId[], expand?: boolean) => void\nexport type ToggleExpands = (rowIds: RowId[], expand?: boolean) => void\n\nexport interface ProjectTableContextType {\n isInitialized: ProjectTableProviderProps['isInitialized']\n isLoading: ProjectTableProviderProps['isLoading']\n users: ProjectTableProviderProps['users']\n // Attributes\n attribFields: ProjectTableProviderProps['attribFields']\n attribFieldsScoped: ProjectTableProviderProps['attribFields']\n error?: string\n scopes: ProjectTableProviderProps['scopes']\n\n // Data\n tableData: TableRow[]\n tasksMap: ProjectTableProviderProps['tasksMap']\n foldersMap: ProjectTableProviderProps['foldersMap']\n entitiesMap: ProjectTableProviderProps['entitiesMap']\n fetchNextPage: ProjectTableProviderProps['fetchNextPage']\n reloadTableData: ProjectTableProviderProps['reloadTableData']\n getEntityById: (id: string, field?: string) => EntityMap | undefined // if the entity is not found, we explicity search for the field\n\n // grouping\n groups: ProjectTableProviderProps['groups']\n\n // Filters\n queryFilters: ProjectTableProviderProps['queryFilters']\n\n // Hierarchy\n showHierarchy: ProjectTableProviderProps['showHierarchy']\n updateShowHierarchy: ProjectTableProviderProps['updateShowHierarchy']\n\n // Expanded state\n expanded: ProjectTableProviderProps['expanded']\n setExpanded: ProjectTableProviderProps['setExpanded']\n toggleExpanded: ProjectTableProviderProps['toggleExpanded']\n updateExpanded: ProjectTableProviderProps['updateExpanded']\n toggleExpandAll: ToggleExpandAll\n toggleExpands: ToggleExpands // expand/collapse multiple rows at once\n\n // Folder Relationships\n getInheritedDependents: GetInheritedDependents\n findInheritedValueFromAncestors: FindInheritedValueFromAncestors\n findNonInheritedValues: FindNonInheritedValues\n getAncestorsOf: GetAncestorsOf\n\n // Context menu\n contextMenuItems: ProjectTableProviderProps['contextMenuItems']\n\n // Powerpack context\n powerpack?: ProjectTableProviderProps['powerpack']\n\n // remote modules\n modules: ProjectTableProviderProps['modules']\n\n // SubtasksManager\n SubtasksManager?: React.ComponentType<SubtasksManagerProps>\n\n // player\n playerOpen?: ProjectTableProviderProps['playerOpen']\n onOpenPlayer?: ProjectTableProviderProps['onOpenPlayer']\n\n // views\n onResetView?: () => void\n}\n\nexport const ProjectTableContext = createContext<ProjectTableContextType | undefined>(undefined)\n\nexport const useProjectTableContext = () => {\n const context = useContext(ProjectTableContext)\n if (!context) {\n throw new Error('useProjectTableContext must be used within a ProjectTableProvider')\n }\n return context\n}\n"],"names":["ProjectTableContext","createContext","useProjectTableContext","context","useContext"],"mappings":";AA+EO,MAAMA,IAAsBC,EAAmD,MAAS,GAElFC,IAAyB,MAAM;AAC1C,QAAMC,IAAUC,EAAWJ,CAAmB;AAC9C,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,mEAAmE;AAErF,SAAOA;AACT;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ue=require("../../../../../_virtual/jsx-runtime.cjs.js"),f=require("react"),ie=require("../hooks/useBuildProjectDataTable.cjs.js"),ce=require("../hooks/useFolderRelationships.cjs.js"),S=require("../hooks/useBuildGroupByTableData.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/SubtasksModulesContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");const se=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");const le=require("./ColumnSettingsContext.cjs.js"),ae=require("./ProjectTableContext.cjs.js"),d=g=>g?.split(S.ROW_ID_SEPARATOR)[0]||g,qe=({children:g,foldersMap:s,tableRows:v,tasksMap:c,entitiesMap:u,tasksByFolderMap:j,expanded:i,showHierarchy:m,loadingTasks:R,isLoadingMore:D,isLoading:B,error:A,isInitialized:I,users:w,attribFields:l,scopes:b,groups:h,groupRowFunc:x,queryFilters:O,updateShowHierarchy:G,toggleExpanded:_,updateExpanded:V,fetchNextPage:N,reloadTableData:W,setExpanded:a,contextMenuItems:z,powerpack:J,modules:K,groupByConfig:L,playerOpen:Q,onOpenPlayer:U,onResetView:X})=>{const{attrib:Y}=se.useProjectContext(),Z=ie({foldersMap:s,tasksMap:c,rows:v,tasksByFolderMap:j,expanded:i,showHierarchy:m,loadingTasks:R,isLoadingMore:D}),{groupBy:y,groupByConfig:{showEmpty:$=!1}={}}=le.useColumnSettingsContext(),p=S.default({entities:u,entityType:L?.entityType||"unknown",groups:h,attribFields:l,showEmpty:$,groupRowFunc:x}),H=f.useMemo(()=>l.filter(o=>o.scope?.some(n=>b.includes(n))),[l,b]),C=f.useMemo(()=>!!y&&p(y),[y,u,h]),k=y&&C?C:Z,E=f.useCallback((o,n="entityId")=>{if(typeof o!="string"){console.warn("getEntityById called with non-string id:",o);return}const e=d(o);if(s.has(e))return s.get(e);if(c.has(e))return c.get(e);if(u.has(e))return u.get(e);for(const[r,t]of u)if(t[n]===e)return t},[s,c,u]),{getInheritedDependents:F,getChildrenEntities:T,findInheritedValueFromAncestors:M,findNonInheritedValues:ee,getAncestorsOf:te}=ce({entitiesMap:u,tasksMap:c,tasksByFolderMap:j,getEntityById:E,projectAttrib:Y,attribFields:l}),re=f.useCallback((o,n)=>{const e=typeof i=="object"?i:{},r={...e};o.forEach(t=>{const P=T(t).map(q=>q.id),ne=e[t]||!1;(n!==void 0?!n:ne)?(r[t]=!1,P.forEach(q=>{r[q]=!1})):(r[t]=!0,P.forEach(q=>{r[q]=!0}))}),a(r)},[i,T,a]),oe=f.useCallback((o,n)=>{const e=typeof i=="object"?i:{},r={...e};o.forEach(t=>{n!==void 0?r[t]=n:r[t]=!e[t]}),a(r)},[i,a]);return ue.jsxRuntimeExports.jsx(ae.ProjectTableContext.Provider,{value:{tableData:k,isInitialized:I,isLoading:B,error:A,attribFields:l,attribFieldsScoped:H,scopes:b,users:w,tasksMap:c,foldersMap:s,entitiesMap:u,fetchNextPage:N,reloadTableData:W,groups:h,queryFilters:O,showHierarchy:m,updateShowHierarchy:G,expanded:i,setExpanded:a,toggleExpanded:_,updateExpanded:V,toggleExpandAll:re,toggleExpands:oe,getEntityById:E,getInheritedDependents:F,findInheritedValueFromAncestors:M,findNonInheritedValues:ee,getAncestorsOf:te,contextMenuItems:z,powerpack:J,modules:K,playerOpen:Q,onOpenPlayer:U,onResetView:X},children:g})};exports.ProjectTableProvider=qe;exports.parseRowId=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ie=require("../../../../../_virtual/jsx-runtime.cjs.js"),f=require("react"),ce=require("../hooks/useBuildProjectDataTable.cjs.js"),se=require("../hooks/useFolderRelationships.cjs.js"),S=require("../hooks/useBuildGroupByTableData.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/SubtasksModulesContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");const le=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");const ae=require("./ColumnSettingsContext.cjs.js"),qe=require("./ProjectTableContext.cjs.js"),d=g=>g?.split(S.ROW_ID_SEPARATOR)[0]||g,fe=({children:g,foldersMap:s,tableRows:v,tasksMap:c,entitiesMap:u,tasksByFolderMap:j,expanded:i,showHierarchy:m,loadingTasks:R,isLoadingMore:D,isLoading:B,error:A,isInitialized:I,users:w,attribFields:l,scopes:b,groups:h,groupRowFunc:x,queryFilters:O,updateShowHierarchy:G,toggleExpanded:_,updateExpanded:V,fetchNextPage:N,reloadTableData:W,setExpanded:a,contextMenuItems:z,powerpack:J,modules:K,groupByConfig:L,SubtasksManager:Q,playerOpen:U,onOpenPlayer:X,onResetView:Y})=>{const{attrib:Z}=le.useProjectContext(),$=ce({foldersMap:s,tasksMap:c,rows:v,tasksByFolderMap:j,expanded:i,showHierarchy:m,loadingTasks:R,isLoadingMore:D}),{groupBy:y,groupByConfig:{showEmpty:p=!1}={}}=ae.useColumnSettingsContext(),H=S.default({entities:u,entityType:L?.entityType||"unknown",groups:h,attribFields:l,showEmpty:p,groupRowFunc:x}),k=f.useMemo(()=>l.filter(o=>o.scope?.some(n=>b.includes(n))),[l,b]),C=f.useMemo(()=>!!y&&H(y),[y,u,h]),F=y&&C?C:$,E=f.useCallback((o,n="entityId")=>{if(typeof o!="string"){console.warn("getEntityById called with non-string id:",o);return}const e=d(o);if(s.has(e))return s.get(e);if(c.has(e))return c.get(e);if(u.has(e))return u.get(e);for(const[r,t]of u)if(t[n]===e)return t},[s,c,u]),{getInheritedDependents:M,getChildrenEntities:T,findInheritedValueFromAncestors:ee,findNonInheritedValues:te,getAncestorsOf:re}=se({entitiesMap:u,tasksMap:c,tasksByFolderMap:j,getEntityById:E,projectAttrib:Z,attribFields:l}),oe=f.useCallback((o,n)=>{const e=typeof i=="object"?i:{},r={...e};o.forEach(t=>{const P=T(t).map(q=>q.id),ue=e[t]||!1;(n!==void 0?!n:ue)?(r[t]=!1,P.forEach(q=>{r[q]=!1})):(r[t]=!0,P.forEach(q=>{r[q]=!0}))}),a(r)},[i,T,a]),ne=f.useCallback((o,n)=>{const e=typeof i=="object"?i:{},r={...e};o.forEach(t=>{n!==void 0?r[t]=n:r[t]=!e[t]}),a(r)},[i,a]);return ie.jsxRuntimeExports.jsx(qe.ProjectTableContext.Provider,{value:{tableData:F,isInitialized:I,isLoading:B,error:A,attribFields:l,attribFieldsScoped:k,scopes:b,users:w,tasksMap:c,foldersMap:s,entitiesMap:u,fetchNextPage:N,reloadTableData:W,groups:h,queryFilters:O,showHierarchy:m,updateShowHierarchy:G,expanded:i,setExpanded:a,toggleExpanded:_,updateExpanded:V,toggleExpandAll:oe,toggleExpands:ne,getEntityById:E,getInheritedDependents:M,findInheritedValueFromAncestors:ee,findNonInheritedValues:te,getAncestorsOf:re,contextMenuItems:z,powerpack:J,modules:K,SubtasksManager:Q,playerOpen:U,onOpenPlayer:X,onResetView:Y},children:g})};exports.ProjectTableProvider=fe;exports.parseRowId=d;
2
2
  //# sourceMappingURL=ProjectTableProvider.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTableProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectTableProvider.tsx"],"sourcesContent":["/**\n * Project Table Context\n *\n * This context serves as the central data management layer for the project table component.\n * It performs three main functions:\n *\n * 1. **Props Forwarding**: Acts as a bridge to forward essential props (project info, users,\n * attributes, filters, etc.) down to child components throughout the table hierarchy.\n *\n * 2. **Table Data Structure Building**: Transforms raw project data into structured table rows\n * that can be consumed by the table component. This includes processing folders, tasks,\n * and entities into a unified table format.\n *\n * 3. **Multi-Modal Data Presentation**: Supports three different data presentation modes:\n * - **Hierarchy Mode**: Builds nested folder/task relationships with expandable rows\n * - **Tasks List Mode**: Flattened view of tasks without hierarchical structure\n * - **Groups Mode**: Groups entities by specified criteria (entity type, custom groups)\n *\n * The context also provides utility functions for entity relationships, expansion state\n * management, filtering, and folder inheritance operations.\n */\nimport { ReactNode, useCallback, useMemo } from 'react'\nimport { ExpandedState, OnChangeFn } from '@tanstack/react-table'\nimport useBuildProjectDataTable from '../hooks/useBuildProjectDataTable'\nimport { Filter } from '@ynput/ayon-react-components'\nimport {\n EntitiesMap,\n EntityMap,\n FolderNodeMap,\n TableRow,\n TaskNodeMap,\n TasksByFolderMap,\n} from '../types/table'\nimport useFolderRelationships from '../hooks/useFolderRelationships'\nimport { ProjectModel } from '../types/project'\nimport { ProjectTableAttribute, LoadingTasks } from '../types'\nimport { QueryFilter } from '../types/folders'\nimport { ContextMenuItemConstructors } from '../hooks/useCellContextMenu'\nimport { EntityGroup } from '@shared/api'\nimport useBuildGroupByTableData, {\n GroupByEntityType,\n ROW_ID_SEPARATOR,\n} from '../hooks/useBuildGroupByTableData'\nimport { PowerpackContextType, useProjectContext } from '@shared/context'\nimport { useColumnSettingsContext } from './ColumnSettingsContext'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { ProjectTableContext, ProjectTableContextType } from './ProjectTableContext'\n\nexport const parseRowId = (rowId: string) => rowId?.split(ROW_ID_SEPARATOR)[0] || rowId\n\nexport type TableUser = {\n name: string\n fullName?: string\n}\n\nexport interface ProjectTableProviderProps {\n children: ReactNode\n isInitialized: boolean\n\n // loading\n isLoading: boolean\n isLoadingMore: boolean\n loadingTasks?: LoadingTasks\n error?: string\n users: TableUser[]\n // Attributes\n attribFields: ProjectTableAttribute[]\n scopes: string[]\n\n // data\n tasksMap: TaskNodeMap\n foldersMap: FolderNodeMap\n entitiesMap: EntitiesMap\n tasksByFolderMap: TasksByFolderMap\n tableRows?: TableRow[] // any extra rows that we want to add to the table\n\n // grouping\n groups: EntityGroup[]\n groupRowFunc?: (node: any) => TableRow\n\n // data functions\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n\n // Filters\n queryFilters: {\n filter: QueryFilter | undefined\n filterString?: string\n search: string | undefined\n }\n\n // Hierarchy\n showHierarchy: boolean\n updateShowHierarchy: (showHierarchy: boolean) => void\n\n // Expanded state\n expanded: ExpandedState\n toggleExpanded: (id: string) => void\n updateExpanded: OnChangeFn<ExpandedState>\n setExpanded: React.Dispatch<React.SetStateAction<ExpandedState>>\n\n // context menu\n contextMenuItems: ContextMenuItemConstructors\n\n // powerpack context\n powerpack?: PowerpackContextType\n\n // remote modules\n modules: ProjectTableModulesType\n\n groupByConfig?: {\n entityType?: GroupByEntityType\n }\n\n // player\n playerOpen?: boolean\n onOpenPlayer?: (\n targetIds: {\n taskId?: string\n folderId?: string\n productId?: string\n versionId?: string\n },\n config?: { quickView?: boolean },\n ) => void\n // views\n onResetView?: () => void\n}\n\nexport const ProjectTableProvider = ({\n children,\n foldersMap,\n tableRows,\n tasksMap,\n entitiesMap,\n tasksByFolderMap,\n expanded,\n showHierarchy,\n loadingTasks,\n isLoadingMore,\n isLoading,\n error,\n isInitialized,\n users,\n attribFields,\n scopes,\n groups,\n groupRowFunc,\n queryFilters,\n updateShowHierarchy,\n toggleExpanded,\n updateExpanded,\n fetchNextPage,\n reloadTableData,\n setExpanded,\n contextMenuItems,\n powerpack,\n modules,\n groupByConfig,\n // player\n playerOpen,\n onOpenPlayer,\n // views\n onResetView,\n}: ProjectTableProviderProps) => {\n const { attrib: projectAttrib } = useProjectContext()\n // DATA TO TABLE\n const defaultTableData = useBuildProjectDataTable({\n foldersMap,\n tasksMap,\n rows: tableRows,\n tasksByFolderMap,\n expanded,\n showHierarchy,\n loadingTasks,\n isLoadingMore,\n })\n\n const { groupBy, groupByConfig: { showEmpty: showEmptyGroups = false } = {} } =\n useColumnSettingsContext()\n\n const buildGroupByTableData = useBuildGroupByTableData({\n entities: entitiesMap,\n entityType: groupByConfig?.entityType || 'unknown',\n groups: groups,\n attribFields,\n showEmpty: showEmptyGroups,\n groupRowFunc,\n })\n\n const attribFieldsScoped = useMemo(\n () => attribFields.filter((attrib) => attrib.scope?.some((scope) => scopes.includes(scope))),\n [attribFields, scopes],\n )\n\n // if we are grouping by something, we ignore current tableData and format the data based on the groupBy\n const groupedTableData = useMemo(\n () => !!groupBy && buildGroupByTableData(groupBy),\n [groupBy, entitiesMap, groups],\n )\n\n const tableData = groupBy && groupedTableData ? groupedTableData : defaultTableData\n\n const getEntityById = useCallback(\n (id: string, field: string = 'entityId'): EntityMap | undefined => {\n // defensive check to ensure id is a string\n if (typeof id !== 'string') {\n console.warn('getEntityById called with non-string id:', id)\n return undefined\n }\n // always parse the id to remove any suffixes\n // this can happen if the id is a group by id (we need to make the row id unique)\n const parsedId = parseRowId(id)\n if (foldersMap.has(parsedId)) {\n return foldersMap.get(parsedId)\n } else if (tasksMap.has(parsedId)) {\n return tasksMap.get(parsedId)\n } else if (entitiesMap.has(parsedId)) {\n return entitiesMap.get(parsedId)\n }\n\n // if we have not found the entity at all, double check through the maps using field (entityId)\n for (const [_, entity] of entitiesMap) {\n if (entity[field as keyof EntityMap] === parsedId) {\n return entity\n }\n }\n\n // Return undefined if not found\n return undefined\n },\n [foldersMap, tasksMap, entitiesMap],\n )\n\n // get folder relationship functions\n const {\n getInheritedDependents,\n getChildrenEntities,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n } = useFolderRelationships({\n entitiesMap,\n tasksMap,\n tasksByFolderMap,\n getEntityById,\n projectAttrib,\n attribFields: attribFields,\n })\n\n const toggleExpandAll: ProjectTableContextType['toggleExpandAll'] = useCallback(\n (rowIds, expandAll) => {\n const expandedState = typeof expanded === 'object' ? expanded : {}\n\n const newExpandedState = { ...expandedState }\n\n rowIds.forEach((rowId) => {\n // get all children of the rowId using tableData\n const childIds = getChildrenEntities(rowId).map((child) => child.id)\n // check if the rowId is expanded\n const isExpanded = expandedState[rowId] || false\n\n if (expandAll !== undefined ? !expandAll : isExpanded) {\n // collapse all children\n newExpandedState[rowId] = false\n childIds.forEach((id) => {\n newExpandedState[id] = false\n })\n } else {\n // expand all children\n newExpandedState[rowId] = true\n childIds.forEach((id) => {\n newExpandedState[id] = true\n })\n }\n })\n\n setExpanded(newExpandedState)\n },\n [expanded, getChildrenEntities, setExpanded],\n )\n\n const toggleExpands: ProjectTableContextType['toggleExpands'] = useCallback(\n (rowIds, expand) => {\n const expandedState = typeof expanded === 'object' ? expanded : {}\n const newExpandedState = { ...expandedState }\n\n rowIds.forEach((rowId) => {\n if (expand !== undefined) {\n // Use the provided expand parameter\n newExpandedState[rowId] = expand\n } else {\n // Toggle based on current state\n newExpandedState[rowId] = !expandedState[rowId]\n }\n })\n\n setExpanded(newExpandedState)\n },\n [expanded, setExpanded],\n )\n\n return (\n <ProjectTableContext.Provider\n value={{\n // from this context\n tableData,\n // forwarded on\n isInitialized,\n isLoading,\n error,\n attribFields,\n attribFieldsScoped,\n scopes,\n users,\n tasksMap,\n foldersMap,\n entitiesMap,\n fetchNextPage,\n reloadTableData,\n groups,\n queryFilters,\n // hierarchy\n showHierarchy,\n updateShowHierarchy,\n // expanded state\n expanded,\n setExpanded,\n toggleExpanded,\n updateExpanded,\n toggleExpandAll,\n toggleExpands,\n getEntityById,\n // folder relationships\n getInheritedDependents,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n // context menu\n contextMenuItems,\n // powerpack context\n powerpack,\n modules,\n // player\n playerOpen,\n onOpenPlayer,\n // views\n onResetView,\n }}\n >\n {children}\n </ProjectTableContext.Provider>\n )\n}\n"],"names":["parseRowId","rowId","ROW_ID_SEPARATOR","ProjectTableProvider","children","foldersMap","tableRows","tasksMap","entitiesMap","tasksByFolderMap","expanded","showHierarchy","loadingTasks","isLoadingMore","isLoading","error","isInitialized","users","attribFields","scopes","groups","groupRowFunc","queryFilters","updateShowHierarchy","toggleExpanded","updateExpanded","fetchNextPage","reloadTableData","setExpanded","contextMenuItems","powerpack","modules","groupByConfig","playerOpen","onOpenPlayer","onResetView","projectAttrib","useProjectContext","defaultTableData","useBuildProjectDataTable","groupBy","showEmptyGroups","useColumnSettingsContext","buildGroupByTableData","useBuildGroupByTableData","attribFieldsScoped","useMemo","attrib","scope","groupedTableData","tableData","getEntityById","useCallback","id","field","parsedId","_","entity","getInheritedDependents","getChildrenEntities","findInheritedValueFromAncestors","findNonInheritedValues","getAncestorsOf","useFolderRelationships","toggleExpandAll","rowIds","expandAll","expandedState","newExpandedState","childIds","child","isExpanded","toggleExpands","expand","jsx","ProjectTableContext"],"mappings":"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"}
1
+ {"version":3,"file":"ProjectTableProvider.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectTableProvider.tsx"],"sourcesContent":["/**\n * Project Table Context\n *\n * This context serves as the central data management layer for the project table component.\n * It performs three main functions:\n *\n * 1. **Props Forwarding**: Acts as a bridge to forward essential props (project info, users,\n * attributes, filters, etc.) down to child components throughout the table hierarchy.\n *\n * 2. **Table Data Structure Building**: Transforms raw project data into structured table rows\n * that can be consumed by the table component. This includes processing folders, tasks,\n * and entities into a unified table format.\n *\n * 3. **Multi-Modal Data Presentation**: Supports three different data presentation modes:\n * - **Hierarchy Mode**: Builds nested folder/task relationships with expandable rows\n * - **Tasks List Mode**: Flattened view of tasks without hierarchical structure\n * - **Groups Mode**: Groups entities by specified criteria (entity type, custom groups)\n *\n * The context also provides utility functions for entity relationships, expansion state\n * management, filtering, and folder inheritance operations.\n */\nimport { ReactNode, useCallback, useMemo } from 'react'\nimport { ExpandedState, OnChangeFn } from '@tanstack/react-table'\nimport useBuildProjectDataTable from '../hooks/useBuildProjectDataTable'\nimport { Filter } from '@ynput/ayon-react-components'\nimport {\n EntitiesMap,\n EntityMap,\n FolderNodeMap,\n TableRow,\n TaskNodeMap,\n TasksByFolderMap,\n} from '../types/table'\nimport useFolderRelationships from '../hooks/useFolderRelationships'\nimport { ProjectModel } from '../types/project'\nimport { ProjectTableAttribute, LoadingTasks } from '../types'\nimport { QueryFilter } from '../types/folders'\nimport { ContextMenuItemConstructors } from '../hooks/useCellContextMenu'\nimport { EntityGroup } from '@shared/api'\nimport useBuildGroupByTableData, {\n GroupByEntityType,\n ROW_ID_SEPARATOR,\n} from '../hooks/useBuildGroupByTableData'\nimport { PowerpackContextType, useProjectContext } from '@shared/context'\nimport { useColumnSettingsContext } from './ColumnSettingsContext'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { ProjectTableContext, ProjectTableContextType } from './ProjectTableContext'\nimport type { SubtasksManagerProps } from '@shared/components'\n\nexport const parseRowId = (rowId: string) => rowId?.split(ROW_ID_SEPARATOR)[0] || rowId\n\nexport type TableUser = {\n name: string\n fullName?: string\n}\n\nexport interface ProjectTableProviderProps {\n children: ReactNode\n isInitialized: boolean\n\n // loading\n isLoading: boolean\n isLoadingMore: boolean\n loadingTasks?: LoadingTasks\n error?: string\n users: TableUser[]\n // Attributes\n attribFields: ProjectTableAttribute[]\n scopes: string[]\n\n // data\n tasksMap: TaskNodeMap\n foldersMap: FolderNodeMap\n entitiesMap: EntitiesMap\n tasksByFolderMap: TasksByFolderMap\n tableRows?: TableRow[] // any extra rows that we want to add to the table\n\n // grouping\n groups: EntityGroup[]\n groupRowFunc?: (node: any) => TableRow\n\n // data functions\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n\n // Filters\n queryFilters: {\n filter: QueryFilter | undefined\n filterString?: string\n search: string | undefined\n }\n\n // Hierarchy\n showHierarchy: boolean\n updateShowHierarchy: (showHierarchy: boolean) => void\n\n // Expanded state\n expanded: ExpandedState\n toggleExpanded: (id: string) => void\n updateExpanded: OnChangeFn<ExpandedState>\n setExpanded: React.Dispatch<React.SetStateAction<ExpandedState>>\n\n // context menu\n contextMenuItems: ContextMenuItemConstructors\n\n // powerpack context\n powerpack?: PowerpackContextType\n\n // remote modules\n modules: ProjectTableModulesType\n\n groupByConfig?: {\n entityType?: GroupByEntityType\n }\n\n // SubtasksManager component\n SubtasksManager?: React.ComponentType<SubtasksManagerProps>\n\n // player\n playerOpen?: boolean\n onOpenPlayer?: (\n targetIds: {\n taskId?: string\n folderId?: string\n productId?: string\n versionId?: string\n },\n config?: { quickView?: boolean },\n ) => void\n // views\n onResetView?: () => void\n}\n\nexport const ProjectTableProvider = ({\n children,\n foldersMap,\n tableRows,\n tasksMap,\n entitiesMap,\n tasksByFolderMap,\n expanded,\n showHierarchy,\n loadingTasks,\n isLoadingMore,\n isLoading,\n error,\n isInitialized,\n users,\n attribFields,\n scopes,\n groups,\n groupRowFunc,\n queryFilters,\n updateShowHierarchy,\n toggleExpanded,\n updateExpanded,\n fetchNextPage,\n reloadTableData,\n setExpanded,\n contextMenuItems,\n powerpack,\n modules,\n groupByConfig,\n SubtasksManager,\n // player\n playerOpen,\n onOpenPlayer,\n // views\n onResetView,\n}: ProjectTableProviderProps) => {\n const { attrib: projectAttrib } = useProjectContext()\n // DATA TO TABLE\n const defaultTableData = useBuildProjectDataTable({\n foldersMap,\n tasksMap,\n rows: tableRows,\n tasksByFolderMap,\n expanded,\n showHierarchy,\n loadingTasks,\n isLoadingMore,\n })\n\n const { groupBy, groupByConfig: { showEmpty: showEmptyGroups = false } = {} } =\n useColumnSettingsContext()\n\n const buildGroupByTableData = useBuildGroupByTableData({\n entities: entitiesMap,\n entityType: groupByConfig?.entityType || 'unknown',\n groups: groups,\n attribFields,\n showEmpty: showEmptyGroups,\n groupRowFunc,\n })\n\n const attribFieldsScoped = useMemo(\n () => attribFields.filter((attrib) => attrib.scope?.some((scope) => scopes.includes(scope))),\n [attribFields, scopes],\n )\n\n // if we are grouping by something, we ignore current tableData and format the data based on the groupBy\n const groupedTableData = useMemo(\n () => !!groupBy && buildGroupByTableData(groupBy),\n [groupBy, entitiesMap, groups],\n )\n\n const tableData = groupBy && groupedTableData ? groupedTableData : defaultTableData\n\n const getEntityById = useCallback(\n (id: string, field: string = 'entityId'): EntityMap | undefined => {\n // defensive check to ensure id is a string\n if (typeof id !== 'string') {\n console.warn('getEntityById called with non-string id:', id)\n return undefined\n }\n // always parse the id to remove any suffixes\n // this can happen if the id is a group by id (we need to make the row id unique)\n const parsedId = parseRowId(id)\n if (foldersMap.has(parsedId)) {\n return foldersMap.get(parsedId)\n } else if (tasksMap.has(parsedId)) {\n return tasksMap.get(parsedId)\n } else if (entitiesMap.has(parsedId)) {\n return entitiesMap.get(parsedId)\n }\n\n // if we have not found the entity at all, double check through the maps using field (entityId)\n for (const [_, entity] of entitiesMap) {\n if (entity[field as keyof EntityMap] === parsedId) {\n return entity\n }\n }\n\n // Return undefined if not found\n return undefined\n },\n [foldersMap, tasksMap, entitiesMap],\n )\n\n // get folder relationship functions\n const {\n getInheritedDependents,\n getChildrenEntities,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n } = useFolderRelationships({\n entitiesMap,\n tasksMap,\n tasksByFolderMap,\n getEntityById,\n projectAttrib,\n attribFields: attribFields,\n })\n\n const toggleExpandAll: ProjectTableContextType['toggleExpandAll'] = useCallback(\n (rowIds, expandAll) => {\n const expandedState = typeof expanded === 'object' ? expanded : {}\n\n const newExpandedState = { ...expandedState }\n\n rowIds.forEach((rowId) => {\n // get all children of the rowId using tableData\n const childIds = getChildrenEntities(rowId).map((child) => child.id)\n // check if the rowId is expanded\n const isExpanded = expandedState[rowId] || false\n\n if (expandAll !== undefined ? !expandAll : isExpanded) {\n // collapse all children\n newExpandedState[rowId] = false\n childIds.forEach((id) => {\n newExpandedState[id] = false\n })\n } else {\n // expand all children\n newExpandedState[rowId] = true\n childIds.forEach((id) => {\n newExpandedState[id] = true\n })\n }\n })\n\n setExpanded(newExpandedState)\n },\n [expanded, getChildrenEntities, setExpanded],\n )\n\n const toggleExpands: ProjectTableContextType['toggleExpands'] = useCallback(\n (rowIds, expand) => {\n const expandedState = typeof expanded === 'object' ? expanded : {}\n const newExpandedState = { ...expandedState }\n\n rowIds.forEach((rowId) => {\n if (expand !== undefined) {\n // Use the provided expand parameter\n newExpandedState[rowId] = expand\n } else {\n // Toggle based on current state\n newExpandedState[rowId] = !expandedState[rowId]\n }\n })\n\n setExpanded(newExpandedState)\n },\n [expanded, setExpanded],\n )\n\n return (\n <ProjectTableContext.Provider\n value={{\n // from this context\n tableData,\n // forwarded on\n isInitialized,\n isLoading,\n error,\n attribFields,\n attribFieldsScoped,\n scopes,\n users,\n tasksMap,\n foldersMap,\n entitiesMap,\n fetchNextPage,\n reloadTableData,\n groups,\n queryFilters,\n // hierarchy\n showHierarchy,\n updateShowHierarchy,\n // expanded state\n expanded,\n setExpanded,\n toggleExpanded,\n updateExpanded,\n toggleExpandAll,\n toggleExpands,\n getEntityById,\n // folder relationships\n getInheritedDependents,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n // context menu\n contextMenuItems,\n // powerpack context\n powerpack,\n modules,\n // SubtasksManager\n SubtasksManager,\n // player\n playerOpen,\n onOpenPlayer,\n // views\n onResetView,\n }}\n >\n {children}\n </ProjectTableContext.Provider>\n )\n}\n"],"names":["parseRowId","rowId","ROW_ID_SEPARATOR","ProjectTableProvider","children","foldersMap","tableRows","tasksMap","entitiesMap","tasksByFolderMap","expanded","showHierarchy","loadingTasks","isLoadingMore","isLoading","error","isInitialized","users","attribFields","scopes","groups","groupRowFunc","queryFilters","updateShowHierarchy","toggleExpanded","updateExpanded","fetchNextPage","reloadTableData","setExpanded","contextMenuItems","powerpack","modules","groupByConfig","SubtasksManager","playerOpen","onOpenPlayer","onResetView","projectAttrib","useProjectContext","defaultTableData","useBuildProjectDataTable","groupBy","showEmptyGroups","useColumnSettingsContext","buildGroupByTableData","useBuildGroupByTableData","attribFieldsScoped","useMemo","attrib","scope","groupedTableData","tableData","getEntityById","useCallback","id","field","parsedId","_","entity","getInheritedDependents","getChildrenEntities","findInheritedValueFromAncestors","findNonInheritedValues","getAncestorsOf","useFolderRelationships","toggleExpandAll","rowIds","expandAll","expandedState","newExpandedState","childIds","child","isExpanded","toggleExpands","expand","jsx","ProjectTableContext"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { j as nt } from "../../../../../_virtual/jsx-runtime.es.js";
1
+ import { j as it } from "../../../../../_virtual/jsx-runtime.es.js";
2
2
  import { useMemo as B, useCallback as h } from "react";
3
- import it from "../hooks/useBuildProjectDataTable.es.js";
4
- import mt from "../hooks/useFolderRelationships.es.js";
5
- import ct, { ROW_ID_SEPARATOR as st } from "../hooks/useBuildGroupByTableData.es.js";
3
+ import mt from "../hooks/useBuildProjectDataTable.es.js";
4
+ import ct from "../hooks/useFolderRelationships.es.js";
5
+ import st, { ROW_ID_SEPARATOR as ut } from "../hooks/useBuildGroupByTableData.es.js";
6
6
  import "../../../context/RemoteModulesContext.es.js";
7
7
  import "../../../context/DetailsPanelContext.es.js";
8
8
  import "../../../context/SubtasksModulesContext.es.js";
@@ -18,12 +18,12 @@ import "../../../context/MoveEntityContext.es.js";
18
18
  import "../../../context/MenuContext.es.js";
19
19
  import "../../../context/WebsocketContext.es.js";
20
20
  import "../../../context/GlobalContext.es.js";
21
- import { useProjectContext as ut } from "../../../context/ProjectContext.es.js";
21
+ import { useProjectContext as ft } from "../../../context/ProjectContext.es.js";
22
22
  import "../../../context/ProjectFoldersContext.es.js";
23
23
  import "../../../context/UriContext.es.js";
24
- import { useColumnSettingsContext as ft } from "./ColumnSettingsContext.es.js";
25
- import { ProjectTableContext as lt } from "./ProjectTableContext.es.js";
26
- const pt = (p) => p?.split(st)[0] || p, Wt = ({
24
+ import { useColumnSettingsContext as lt } from "./ColumnSettingsContext.es.js";
25
+ import { ProjectTableContext as pt } from "./ProjectTableContext.es.js";
26
+ const yt = (p) => p?.split(ut)[0] || p, qt = ({
27
27
  children: p,
28
28
  foldersMap: s,
29
29
  tableRows: C,
@@ -53,13 +53,14 @@ const pt = (p) => p?.split(st)[0] || p, Wt = ({
53
53
  powerpack: q,
54
54
  modules: z,
55
55
  groupByConfig: J,
56
+ SubtasksManager: K,
56
57
  // player
57
- playerOpen: K,
58
- onOpenPlayer: L,
58
+ playerOpen: L,
59
+ onOpenPlayer: Q,
59
60
  // views
60
- onResetView: Q
61
+ onResetView: U
61
62
  }) => {
62
- const { attrib: U } = ut(), X = it({
63
+ const { attrib: X } = ft(), Y = mt({
63
64
  foldersMap: s,
64
65
  tasksMap: c,
65
66
  rows: C,
@@ -68,26 +69,26 @@ const pt = (p) => p?.split(st)[0] || p, Wt = ({
68
69
  showHierarchy: b,
69
70
  loadingTasks: P,
70
71
  isLoadingMore: S
71
- }), { groupBy: y, groupByConfig: { showEmpty: Y = !1 } = {} } = ft(), Z = ct({
72
+ }), { groupBy: y, groupByConfig: { showEmpty: Z = !1 } = {} } = lt(), $ = st({
72
73
  entities: i,
73
74
  entityType: J?.entityType || "unknown",
74
75
  groups: a,
75
76
  attribFields: u,
76
- showEmpty: Y,
77
+ showEmpty: Z,
77
78
  groupRowFunc: w
78
- }), $ = B(
79
+ }), H = B(
79
80
  () => u.filter((e) => e.scope?.some((n) => g.includes(n))),
80
81
  [u, g]
81
82
  ), j = B(
82
- () => !!y && Z(y),
83
+ () => !!y && $(y),
83
84
  [y, i, a]
84
- ), H = y && j ? j : X, T = h(
85
+ ), F = y && j ? j : Y, T = h(
85
86
  (e, n = "entityId") => {
86
87
  if (typeof e != "string") {
87
88
  console.warn("getEntityById called with non-string id:", e);
88
89
  return;
89
90
  }
90
- const t = pt(e);
91
+ const t = yt(e);
91
92
  if (s.has(t))
92
93
  return s.get(t);
93
94
  if (c.has(t))
@@ -100,24 +101,24 @@ const pt = (p) => p?.split(st)[0] || p, Wt = ({
100
101
  },
101
102
  [s, c, i]
102
103
  ), {
103
- getInheritedDependents: F,
104
+ getInheritedDependents: k,
104
105
  getChildrenEntities: D,
105
- findInheritedValueFromAncestors: k,
106
- findNonInheritedValues: M,
107
- getAncestorsOf: tt
108
- } = mt({
106
+ findInheritedValueFromAncestors: M,
107
+ findNonInheritedValues: tt,
108
+ getAncestorsOf: ot
109
+ } = ct({
109
110
  entitiesMap: i,
110
111
  tasksMap: c,
111
112
  tasksByFolderMap: E,
112
113
  getEntityById: T,
113
- projectAttrib: U,
114
+ projectAttrib: X,
114
115
  attribFields: u
115
- }), ot = h(
116
+ }), rt = h(
116
117
  (e, n) => {
117
118
  const t = typeof m == "object" ? m : {}, r = { ...t };
118
119
  e.forEach((o) => {
119
- const v = D(o).map((l) => l.id), et = t[o] || !1;
120
- (n !== void 0 ? !n : et) ? (r[o] = !1, v.forEach((l) => {
120
+ const v = D(o).map((l) => l.id), nt = t[o] || !1;
121
+ (n !== void 0 ? !n : nt) ? (r[o] = !1, v.forEach((l) => {
121
122
  r[l] = !1;
122
123
  })) : (r[o] = !0, v.forEach((l) => {
123
124
  r[l] = !0;
@@ -125,7 +126,7 @@ const pt = (p) => p?.split(st)[0] || p, Wt = ({
125
126
  }), f(r);
126
127
  },
127
128
  [m, D, f]
128
- ), rt = h(
129
+ ), et = h(
129
130
  (e, n) => {
130
131
  const t = typeof m == "object" ? m : {}, r = { ...t };
131
132
  e.forEach((o) => {
@@ -134,18 +135,18 @@ const pt = (p) => p?.split(st)[0] || p, Wt = ({
134
135
  },
135
136
  [m, f]
136
137
  );
137
- return /* @__PURE__ */ nt.jsx(
138
- lt.Provider,
138
+ return /* @__PURE__ */ it.jsx(
139
+ pt.Provider,
139
140
  {
140
141
  value: {
141
142
  // from this context
142
- tableData: H,
143
+ tableData: F,
143
144
  // forwarded on
144
145
  isInitialized: d,
145
146
  isLoading: R,
146
147
  error: A,
147
148
  attribFields: u,
148
- attribFieldsScoped: $,
149
+ attribFieldsScoped: H,
149
150
  scopes: g,
150
151
  users: I,
151
152
  tasksMap: c,
@@ -163,31 +164,33 @@ const pt = (p) => p?.split(st)[0] || p, Wt = ({
163
164
  setExpanded: f,
164
165
  toggleExpanded: _,
165
166
  updateExpanded: V,
166
- toggleExpandAll: ot,
167
- toggleExpands: rt,
167
+ toggleExpandAll: rt,
168
+ toggleExpands: et,
168
169
  getEntityById: T,
169
170
  // folder relationships
170
- getInheritedDependents: F,
171
- findInheritedValueFromAncestors: k,
172
- findNonInheritedValues: M,
173
- getAncestorsOf: tt,
171
+ getInheritedDependents: k,
172
+ findInheritedValueFromAncestors: M,
173
+ findNonInheritedValues: tt,
174
+ getAncestorsOf: ot,
174
175
  // context menu
175
176
  contextMenuItems: W,
176
177
  // powerpack context
177
178
  powerpack: q,
178
179
  modules: z,
180
+ // SubtasksManager
181
+ SubtasksManager: K,
179
182
  // player
180
- playerOpen: K,
181
- onOpenPlayer: L,
183
+ playerOpen: L,
184
+ onOpenPlayer: Q,
182
185
  // views
183
- onResetView: Q
186
+ onResetView: U
184
187
  },
185
188
  children: p
186
189
  }
187
190
  );
188
191
  };
189
192
  export {
190
- Wt as ProjectTableProvider,
191
- pt as parseRowId
193
+ qt as ProjectTableProvider,
194
+ yt as parseRowId
192
195
  };
193
196
  //# sourceMappingURL=ProjectTableProvider.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTableProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectTableProvider.tsx"],"sourcesContent":["/**\n * Project Table Context\n *\n * This context serves as the central data management layer for the project table component.\n * It performs three main functions:\n *\n * 1. **Props Forwarding**: Acts as a bridge to forward essential props (project info, users,\n * attributes, filters, etc.) down to child components throughout the table hierarchy.\n *\n * 2. **Table Data Structure Building**: Transforms raw project data into structured table rows\n * that can be consumed by the table component. This includes processing folders, tasks,\n * and entities into a unified table format.\n *\n * 3. **Multi-Modal Data Presentation**: Supports three different data presentation modes:\n * - **Hierarchy Mode**: Builds nested folder/task relationships with expandable rows\n * - **Tasks List Mode**: Flattened view of tasks without hierarchical structure\n * - **Groups Mode**: Groups entities by specified criteria (entity type, custom groups)\n *\n * The context also provides utility functions for entity relationships, expansion state\n * management, filtering, and folder inheritance operations.\n */\nimport { ReactNode, useCallback, useMemo } from 'react'\nimport { ExpandedState, OnChangeFn } from '@tanstack/react-table'\nimport useBuildProjectDataTable from '../hooks/useBuildProjectDataTable'\nimport { Filter } from '@ynput/ayon-react-components'\nimport {\n EntitiesMap,\n EntityMap,\n FolderNodeMap,\n TableRow,\n TaskNodeMap,\n TasksByFolderMap,\n} from '../types/table'\nimport useFolderRelationships from '../hooks/useFolderRelationships'\nimport { ProjectModel } from '../types/project'\nimport { ProjectTableAttribute, LoadingTasks } from '../types'\nimport { QueryFilter } from '../types/folders'\nimport { ContextMenuItemConstructors } from '../hooks/useCellContextMenu'\nimport { EntityGroup } from '@shared/api'\nimport useBuildGroupByTableData, {\n GroupByEntityType,\n ROW_ID_SEPARATOR,\n} from '../hooks/useBuildGroupByTableData'\nimport { PowerpackContextType, useProjectContext } from '@shared/context'\nimport { useColumnSettingsContext } from './ColumnSettingsContext'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { ProjectTableContext, ProjectTableContextType } from './ProjectTableContext'\n\nexport const parseRowId = (rowId: string) => rowId?.split(ROW_ID_SEPARATOR)[0] || rowId\n\nexport type TableUser = {\n name: string\n fullName?: string\n}\n\nexport interface ProjectTableProviderProps {\n children: ReactNode\n isInitialized: boolean\n\n // loading\n isLoading: boolean\n isLoadingMore: boolean\n loadingTasks?: LoadingTasks\n error?: string\n users: TableUser[]\n // Attributes\n attribFields: ProjectTableAttribute[]\n scopes: string[]\n\n // data\n tasksMap: TaskNodeMap\n foldersMap: FolderNodeMap\n entitiesMap: EntitiesMap\n tasksByFolderMap: TasksByFolderMap\n tableRows?: TableRow[] // any extra rows that we want to add to the table\n\n // grouping\n groups: EntityGroup[]\n groupRowFunc?: (node: any) => TableRow\n\n // data functions\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n\n // Filters\n queryFilters: {\n filter: QueryFilter | undefined\n filterString?: string\n search: string | undefined\n }\n\n // Hierarchy\n showHierarchy: boolean\n updateShowHierarchy: (showHierarchy: boolean) => void\n\n // Expanded state\n expanded: ExpandedState\n toggleExpanded: (id: string) => void\n updateExpanded: OnChangeFn<ExpandedState>\n setExpanded: React.Dispatch<React.SetStateAction<ExpandedState>>\n\n // context menu\n contextMenuItems: ContextMenuItemConstructors\n\n // powerpack context\n powerpack?: PowerpackContextType\n\n // remote modules\n modules: ProjectTableModulesType\n\n groupByConfig?: {\n entityType?: GroupByEntityType\n }\n\n // player\n playerOpen?: boolean\n onOpenPlayer?: (\n targetIds: {\n taskId?: string\n folderId?: string\n productId?: string\n versionId?: string\n },\n config?: { quickView?: boolean },\n ) => void\n // views\n onResetView?: () => void\n}\n\nexport const ProjectTableProvider = ({\n children,\n foldersMap,\n tableRows,\n tasksMap,\n entitiesMap,\n tasksByFolderMap,\n expanded,\n showHierarchy,\n loadingTasks,\n isLoadingMore,\n isLoading,\n error,\n isInitialized,\n users,\n attribFields,\n scopes,\n groups,\n groupRowFunc,\n queryFilters,\n updateShowHierarchy,\n toggleExpanded,\n updateExpanded,\n fetchNextPage,\n reloadTableData,\n setExpanded,\n contextMenuItems,\n powerpack,\n modules,\n groupByConfig,\n // player\n playerOpen,\n onOpenPlayer,\n // views\n onResetView,\n}: ProjectTableProviderProps) => {\n const { attrib: projectAttrib } = useProjectContext()\n // DATA TO TABLE\n const defaultTableData = useBuildProjectDataTable({\n foldersMap,\n tasksMap,\n rows: tableRows,\n tasksByFolderMap,\n expanded,\n showHierarchy,\n loadingTasks,\n isLoadingMore,\n })\n\n const { groupBy, groupByConfig: { showEmpty: showEmptyGroups = false } = {} } =\n useColumnSettingsContext()\n\n const buildGroupByTableData = useBuildGroupByTableData({\n entities: entitiesMap,\n entityType: groupByConfig?.entityType || 'unknown',\n groups: groups,\n attribFields,\n showEmpty: showEmptyGroups,\n groupRowFunc,\n })\n\n const attribFieldsScoped = useMemo(\n () => attribFields.filter((attrib) => attrib.scope?.some((scope) => scopes.includes(scope))),\n [attribFields, scopes],\n )\n\n // if we are grouping by something, we ignore current tableData and format the data based on the groupBy\n const groupedTableData = useMemo(\n () => !!groupBy && buildGroupByTableData(groupBy),\n [groupBy, entitiesMap, groups],\n )\n\n const tableData = groupBy && groupedTableData ? groupedTableData : defaultTableData\n\n const getEntityById = useCallback(\n (id: string, field: string = 'entityId'): EntityMap | undefined => {\n // defensive check to ensure id is a string\n if (typeof id !== 'string') {\n console.warn('getEntityById called with non-string id:', id)\n return undefined\n }\n // always parse the id to remove any suffixes\n // this can happen if the id is a group by id (we need to make the row id unique)\n const parsedId = parseRowId(id)\n if (foldersMap.has(parsedId)) {\n return foldersMap.get(parsedId)\n } else if (tasksMap.has(parsedId)) {\n return tasksMap.get(parsedId)\n } else if (entitiesMap.has(parsedId)) {\n return entitiesMap.get(parsedId)\n }\n\n // if we have not found the entity at all, double check through the maps using field (entityId)\n for (const [_, entity] of entitiesMap) {\n if (entity[field as keyof EntityMap] === parsedId) {\n return entity\n }\n }\n\n // Return undefined if not found\n return undefined\n },\n [foldersMap, tasksMap, entitiesMap],\n )\n\n // get folder relationship functions\n const {\n getInheritedDependents,\n getChildrenEntities,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n } = useFolderRelationships({\n entitiesMap,\n tasksMap,\n tasksByFolderMap,\n getEntityById,\n projectAttrib,\n attribFields: attribFields,\n })\n\n const toggleExpandAll: ProjectTableContextType['toggleExpandAll'] = useCallback(\n (rowIds, expandAll) => {\n const expandedState = typeof expanded === 'object' ? expanded : {}\n\n const newExpandedState = { ...expandedState }\n\n rowIds.forEach((rowId) => {\n // get all children of the rowId using tableData\n const childIds = getChildrenEntities(rowId).map((child) => child.id)\n // check if the rowId is expanded\n const isExpanded = expandedState[rowId] || false\n\n if (expandAll !== undefined ? !expandAll : isExpanded) {\n // collapse all children\n newExpandedState[rowId] = false\n childIds.forEach((id) => {\n newExpandedState[id] = false\n })\n } else {\n // expand all children\n newExpandedState[rowId] = true\n childIds.forEach((id) => {\n newExpandedState[id] = true\n })\n }\n })\n\n setExpanded(newExpandedState)\n },\n [expanded, getChildrenEntities, setExpanded],\n )\n\n const toggleExpands: ProjectTableContextType['toggleExpands'] = useCallback(\n (rowIds, expand) => {\n const expandedState = typeof expanded === 'object' ? expanded : {}\n const newExpandedState = { ...expandedState }\n\n rowIds.forEach((rowId) => {\n if (expand !== undefined) {\n // Use the provided expand parameter\n newExpandedState[rowId] = expand\n } else {\n // Toggle based on current state\n newExpandedState[rowId] = !expandedState[rowId]\n }\n })\n\n setExpanded(newExpandedState)\n },\n [expanded, setExpanded],\n )\n\n return (\n <ProjectTableContext.Provider\n value={{\n // from this context\n tableData,\n // forwarded on\n isInitialized,\n isLoading,\n error,\n attribFields,\n attribFieldsScoped,\n scopes,\n users,\n tasksMap,\n foldersMap,\n entitiesMap,\n fetchNextPage,\n reloadTableData,\n groups,\n queryFilters,\n // hierarchy\n showHierarchy,\n updateShowHierarchy,\n // expanded state\n expanded,\n setExpanded,\n toggleExpanded,\n updateExpanded,\n toggleExpandAll,\n toggleExpands,\n getEntityById,\n // folder relationships\n getInheritedDependents,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n // context menu\n contextMenuItems,\n // powerpack context\n powerpack,\n modules,\n // player\n playerOpen,\n onOpenPlayer,\n // views\n onResetView,\n }}\n >\n {children}\n </ProjectTableContext.Provider>\n )\n}\n"],"names":["parseRowId","rowId","ROW_ID_SEPARATOR","ProjectTableProvider","children","foldersMap","tableRows","tasksMap","entitiesMap","tasksByFolderMap","expanded","showHierarchy","loadingTasks","isLoadingMore","isLoading","error","isInitialized","users","attribFields","scopes","groups","groupRowFunc","queryFilters","updateShowHierarchy","toggleExpanded","updateExpanded","fetchNextPage","reloadTableData","setExpanded","contextMenuItems","powerpack","modules","groupByConfig","playerOpen","onOpenPlayer","onResetView","projectAttrib","useProjectContext","defaultTableData","useBuildProjectDataTable","groupBy","showEmptyGroups","useColumnSettingsContext","buildGroupByTableData","useBuildGroupByTableData","attribFieldsScoped","useMemo","attrib","scope","groupedTableData","tableData","getEntityById","useCallback","id","field","parsedId","_","entity","getInheritedDependents","getChildrenEntities","findInheritedValueFromAncestors","findNonInheritedValues","getAncestorsOf","useFolderRelationships","toggleExpandAll","rowIds","expandAll","expandedState","newExpandedState","childIds","child","isExpanded","toggleExpands","expand","jsx","ProjectTableContext"],"mappings":"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"}
1
+ {"version":3,"file":"ProjectTableProvider.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/context/ProjectTableProvider.tsx"],"sourcesContent":["/**\n * Project Table Context\n *\n * This context serves as the central data management layer for the project table component.\n * It performs three main functions:\n *\n * 1. **Props Forwarding**: Acts as a bridge to forward essential props (project info, users,\n * attributes, filters, etc.) down to child components throughout the table hierarchy.\n *\n * 2. **Table Data Structure Building**: Transforms raw project data into structured table rows\n * that can be consumed by the table component. This includes processing folders, tasks,\n * and entities into a unified table format.\n *\n * 3. **Multi-Modal Data Presentation**: Supports three different data presentation modes:\n * - **Hierarchy Mode**: Builds nested folder/task relationships with expandable rows\n * - **Tasks List Mode**: Flattened view of tasks without hierarchical structure\n * - **Groups Mode**: Groups entities by specified criteria (entity type, custom groups)\n *\n * The context also provides utility functions for entity relationships, expansion state\n * management, filtering, and folder inheritance operations.\n */\nimport { ReactNode, useCallback, useMemo } from 'react'\nimport { ExpandedState, OnChangeFn } from '@tanstack/react-table'\nimport useBuildProjectDataTable from '../hooks/useBuildProjectDataTable'\nimport { Filter } from '@ynput/ayon-react-components'\nimport {\n EntitiesMap,\n EntityMap,\n FolderNodeMap,\n TableRow,\n TaskNodeMap,\n TasksByFolderMap,\n} from '../types/table'\nimport useFolderRelationships from '../hooks/useFolderRelationships'\nimport { ProjectModel } from '../types/project'\nimport { ProjectTableAttribute, LoadingTasks } from '../types'\nimport { QueryFilter } from '../types/folders'\nimport { ContextMenuItemConstructors } from '../hooks/useCellContextMenu'\nimport { EntityGroup } from '@shared/api'\nimport useBuildGroupByTableData, {\n GroupByEntityType,\n ROW_ID_SEPARATOR,\n} from '../hooks/useBuildGroupByTableData'\nimport { PowerpackContextType, useProjectContext } from '@shared/context'\nimport { useColumnSettingsContext } from './ColumnSettingsContext'\nimport { ProjectTableModulesType } from '@shared/hooks'\nimport { ProjectTableContext, ProjectTableContextType } from './ProjectTableContext'\nimport type { SubtasksManagerProps } from '@shared/components'\n\nexport const parseRowId = (rowId: string) => rowId?.split(ROW_ID_SEPARATOR)[0] || rowId\n\nexport type TableUser = {\n name: string\n fullName?: string\n}\n\nexport interface ProjectTableProviderProps {\n children: ReactNode\n isInitialized: boolean\n\n // loading\n isLoading: boolean\n isLoadingMore: boolean\n loadingTasks?: LoadingTasks\n error?: string\n users: TableUser[]\n // Attributes\n attribFields: ProjectTableAttribute[]\n scopes: string[]\n\n // data\n tasksMap: TaskNodeMap\n foldersMap: FolderNodeMap\n entitiesMap: EntitiesMap\n tasksByFolderMap: TasksByFolderMap\n tableRows?: TableRow[] // any extra rows that we want to add to the table\n\n // grouping\n groups: EntityGroup[]\n groupRowFunc?: (node: any) => TableRow\n\n // data functions\n fetchNextPage: (value?: string) => void\n reloadTableData: () => void\n\n // Filters\n queryFilters: {\n filter: QueryFilter | undefined\n filterString?: string\n search: string | undefined\n }\n\n // Hierarchy\n showHierarchy: boolean\n updateShowHierarchy: (showHierarchy: boolean) => void\n\n // Expanded state\n expanded: ExpandedState\n toggleExpanded: (id: string) => void\n updateExpanded: OnChangeFn<ExpandedState>\n setExpanded: React.Dispatch<React.SetStateAction<ExpandedState>>\n\n // context menu\n contextMenuItems: ContextMenuItemConstructors\n\n // powerpack context\n powerpack?: PowerpackContextType\n\n // remote modules\n modules: ProjectTableModulesType\n\n groupByConfig?: {\n entityType?: GroupByEntityType\n }\n\n // SubtasksManager component\n SubtasksManager?: React.ComponentType<SubtasksManagerProps>\n\n // player\n playerOpen?: boolean\n onOpenPlayer?: (\n targetIds: {\n taskId?: string\n folderId?: string\n productId?: string\n versionId?: string\n },\n config?: { quickView?: boolean },\n ) => void\n // views\n onResetView?: () => void\n}\n\nexport const ProjectTableProvider = ({\n children,\n foldersMap,\n tableRows,\n tasksMap,\n entitiesMap,\n tasksByFolderMap,\n expanded,\n showHierarchy,\n loadingTasks,\n isLoadingMore,\n isLoading,\n error,\n isInitialized,\n users,\n attribFields,\n scopes,\n groups,\n groupRowFunc,\n queryFilters,\n updateShowHierarchy,\n toggleExpanded,\n updateExpanded,\n fetchNextPage,\n reloadTableData,\n setExpanded,\n contextMenuItems,\n powerpack,\n modules,\n groupByConfig,\n SubtasksManager,\n // player\n playerOpen,\n onOpenPlayer,\n // views\n onResetView,\n}: ProjectTableProviderProps) => {\n const { attrib: projectAttrib } = useProjectContext()\n // DATA TO TABLE\n const defaultTableData = useBuildProjectDataTable({\n foldersMap,\n tasksMap,\n rows: tableRows,\n tasksByFolderMap,\n expanded,\n showHierarchy,\n loadingTasks,\n isLoadingMore,\n })\n\n const { groupBy, groupByConfig: { showEmpty: showEmptyGroups = false } = {} } =\n useColumnSettingsContext()\n\n const buildGroupByTableData = useBuildGroupByTableData({\n entities: entitiesMap,\n entityType: groupByConfig?.entityType || 'unknown',\n groups: groups,\n attribFields,\n showEmpty: showEmptyGroups,\n groupRowFunc,\n })\n\n const attribFieldsScoped = useMemo(\n () => attribFields.filter((attrib) => attrib.scope?.some((scope) => scopes.includes(scope))),\n [attribFields, scopes],\n )\n\n // if we are grouping by something, we ignore current tableData and format the data based on the groupBy\n const groupedTableData = useMemo(\n () => !!groupBy && buildGroupByTableData(groupBy),\n [groupBy, entitiesMap, groups],\n )\n\n const tableData = groupBy && groupedTableData ? groupedTableData : defaultTableData\n\n const getEntityById = useCallback(\n (id: string, field: string = 'entityId'): EntityMap | undefined => {\n // defensive check to ensure id is a string\n if (typeof id !== 'string') {\n console.warn('getEntityById called with non-string id:', id)\n return undefined\n }\n // always parse the id to remove any suffixes\n // this can happen if the id is a group by id (we need to make the row id unique)\n const parsedId = parseRowId(id)\n if (foldersMap.has(parsedId)) {\n return foldersMap.get(parsedId)\n } else if (tasksMap.has(parsedId)) {\n return tasksMap.get(parsedId)\n } else if (entitiesMap.has(parsedId)) {\n return entitiesMap.get(parsedId)\n }\n\n // if we have not found the entity at all, double check through the maps using field (entityId)\n for (const [_, entity] of entitiesMap) {\n if (entity[field as keyof EntityMap] === parsedId) {\n return entity\n }\n }\n\n // Return undefined if not found\n return undefined\n },\n [foldersMap, tasksMap, entitiesMap],\n )\n\n // get folder relationship functions\n const {\n getInheritedDependents,\n getChildrenEntities,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n } = useFolderRelationships({\n entitiesMap,\n tasksMap,\n tasksByFolderMap,\n getEntityById,\n projectAttrib,\n attribFields: attribFields,\n })\n\n const toggleExpandAll: ProjectTableContextType['toggleExpandAll'] = useCallback(\n (rowIds, expandAll) => {\n const expandedState = typeof expanded === 'object' ? expanded : {}\n\n const newExpandedState = { ...expandedState }\n\n rowIds.forEach((rowId) => {\n // get all children of the rowId using tableData\n const childIds = getChildrenEntities(rowId).map((child) => child.id)\n // check if the rowId is expanded\n const isExpanded = expandedState[rowId] || false\n\n if (expandAll !== undefined ? !expandAll : isExpanded) {\n // collapse all children\n newExpandedState[rowId] = false\n childIds.forEach((id) => {\n newExpandedState[id] = false\n })\n } else {\n // expand all children\n newExpandedState[rowId] = true\n childIds.forEach((id) => {\n newExpandedState[id] = true\n })\n }\n })\n\n setExpanded(newExpandedState)\n },\n [expanded, getChildrenEntities, setExpanded],\n )\n\n const toggleExpands: ProjectTableContextType['toggleExpands'] = useCallback(\n (rowIds, expand) => {\n const expandedState = typeof expanded === 'object' ? expanded : {}\n const newExpandedState = { ...expandedState }\n\n rowIds.forEach((rowId) => {\n if (expand !== undefined) {\n // Use the provided expand parameter\n newExpandedState[rowId] = expand\n } else {\n // Toggle based on current state\n newExpandedState[rowId] = !expandedState[rowId]\n }\n })\n\n setExpanded(newExpandedState)\n },\n [expanded, setExpanded],\n )\n\n return (\n <ProjectTableContext.Provider\n value={{\n // from this context\n tableData,\n // forwarded on\n isInitialized,\n isLoading,\n error,\n attribFields,\n attribFieldsScoped,\n scopes,\n users,\n tasksMap,\n foldersMap,\n entitiesMap,\n fetchNextPage,\n reloadTableData,\n groups,\n queryFilters,\n // hierarchy\n showHierarchy,\n updateShowHierarchy,\n // expanded state\n expanded,\n setExpanded,\n toggleExpanded,\n updateExpanded,\n toggleExpandAll,\n toggleExpands,\n getEntityById,\n // folder relationships\n getInheritedDependents,\n findInheritedValueFromAncestors,\n findNonInheritedValues,\n getAncestorsOf,\n // context menu\n contextMenuItems,\n // powerpack context\n powerpack,\n modules,\n // SubtasksManager\n SubtasksManager,\n // player\n playerOpen,\n onOpenPlayer,\n // views\n onResetView,\n }}\n >\n {children}\n </ProjectTableContext.Provider>\n )\n}\n"],"names":["parseRowId","rowId","ROW_ID_SEPARATOR","ProjectTableProvider","children","foldersMap","tableRows","tasksMap","entitiesMap","tasksByFolderMap","expanded","showHierarchy","loadingTasks","isLoadingMore","isLoading","error","isInitialized","users","attribFields","scopes","groups","groupRowFunc","queryFilters","updateShowHierarchy","toggleExpanded","updateExpanded","fetchNextPage","reloadTableData","setExpanded","contextMenuItems","powerpack","modules","groupByConfig","SubtasksManager","playerOpen","onOpenPlayer","onResetView","projectAttrib","useProjectContext","defaultTableData","useBuildProjectDataTable","groupBy","showEmptyGroups","useColumnSettingsContext","buildGroupByTableData","useBuildGroupByTableData","attribFieldsScoped","useMemo","attrib","scope","groupedTableData","tableData","getEntityById","useCallback","id","field","parsedId","_","entity","getInheritedDependents","getChildrenEntities","findInheritedValueFromAncestors","findNonInheritedValues","getAncestorsOf","useFolderRelationships","toggleExpandAll","rowIds","expandAll","expandedState","newExpandedState","childIds","child","isExpanded","toggleExpands","expand","jsx","ProjectTableContext"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),C=require("react-toastify");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");const E=require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");require("react-dom");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/SubtasksModulesContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");const O=require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");const P=require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("lodash");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/react-table");require("@tanstack/react-virtual");require("@tanstack/match-sorter-utils");require("../../SimpleTable/context/SimpleTableContext.cjs.js");require("../../SimpleTable/SimpleTableRowTemplate.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../Slicer/components/SlicerSearch.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../context/CellEditingContext.cjs.js");require("short-uuid");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");const S=require("../context/ProjectTableContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");const $=({projectName:c})=>{const{movingEntities:i,isEntityPickerOpen:I,openMoveDialog:f,closeMoveDialog:y,setEntityPickerOpen:l,clearMovingEntities:m}=O.useMoveEntityContext(),[p]=E.useUpdateOverviewEntitiesMutation(),{tableData:h,getEntityById:d}=S.useProjectTableContext(),{folders:v}=P.useProjectFoldersContext(),M=a.useCallback(t=>{f(t)},[f]),T=a.useCallback(()=>{y()},[y]),w=a.useCallback(async t=>{if(!i||t.length===0)return;const q=t[0];l(!1);try{const n=i.entities.map((e,u)=>({id:`move-${e.entityId}-${Date.now()}-${u}`,type:"update",entityType:e.entityType,entityId:e.entityId,data:e.entityType==="folder"?{parentId:q}:{folderId:q}})),o=(await p({projectName:c,operationsRequestModel:{operations:n}}).unwrap())?.operations?.filter(e=>e.success===!1)||[];if(o.length>0){const e=o.map(u=>u.detail).join(", ");throw new Error(e||"Some move operations failed")}}catch(n){console.error("Failed to move entity:",n);let r=n?.data?.detail||n?.error||n?.message||"Failed to move entities";if(r.includes("already exists"))if(i.entities.length>1)r="Cannot move some entities - one or more entities with the same name already exist in the target location";else if(i.entities[0].entityType==="task"){const e=r.match(/name '.*?, (.+?)' already exists/);r=`Cannot move "${e?e[1]:"this task"}" - a task with this name already exists in the target folder`}else{const e=r.match(/name '.*?, (.+?)' already exists/);r=`Cannot move "${e?e[1]:"this folder"}" - a folder with this name already exists in the target location`}C.toast.error(r)}finally{m(),l(!1)}},[i,c,p,f,y,l,m]),D=a.useCallback(async()=>{if(i){l(!1);try{const t=i.entities.map((r,o)=>({id:`move-to-root-${r.entityId}-${Date.now()}-${o}`,type:"update",entityType:r.entityType,entityId:r.entityId,data:r.entityType==="folder"?{parentId:null}:{folderId:null}})),n=(await p({projectName:c,operationsRequestModel:{operations:t}}).unwrap())?.operations?.filter(r=>r.success===!1)||[];if(n.length>0){const r=n.map(o=>o.detail).join(", ");throw new Error(r||"Some move operations failed")}}catch(t){console.error("Failed to move entities to root:",t);let q=t?.data?.detail||t?.error||t?.message||"Failed to move entities to root";C.toast.error(q)}finally{m(),l(!1)}}},[i,c,p,f,y,l,m]),b=a.useCallback(()=>{if(!i)return[];const t=[];return i.entities.forEach(q=>{t.push(q.entityId)}),v.forEach(q=>{i.entities.some(r=>{const o=d(r.entityId);return o?.name?h.filter(u=>r.entityType==="folder"?u.entityType==="folder"&&u.parentId===q.id:r.entityType==="task"?u.entityType==="task"&&u.folderId===q.id:!1).some(u=>u.name===o.name&&u.entityId!==r.entityId):!1})&&t.push(q.id)}),[...new Set(t)]},[i,v,h,d]),k=a.useCallback(t=>{if(!i)return;if(i.entities.some(e=>e.entityType==="folder"&&e.entityId===t))return"Cannot move folder to itself";if(i.entities.some(e=>e.currentParentId===t))return"Cannot move to the same location";const r=v.find(e=>e.id===t);if(r){const e=i.entities.find(u=>{const g=d(u.entityId);return g?.name?h.filter(s=>u.entityType==="folder"?s.entityType==="folder"&&s.parentId===r.id:u.entityType==="task"?s.entityType==="task"&&s.folderId===r.id:!1).some(s=>s.name===g.name&&s.entityId!==u.entityId):!1});if(e)return`Cannot move "${d(e.entityId)?.name||"Entity"}" - an entity with the same name already exists in this folder`}return i.entities.some(e=>e.entityType==="folder")?"Cannot move folder to its child":"Cannot move to this location"},[i,v,h,d]),x=a.useMemo(()=>i?.entities.every(t=>t.entityType==="folder")||!1,[i]);return{movingEntities:i,isEntityPickerOpen:I,isDialogOpen:I,openMoveDialog:M,closeMoveDialog:T,handleMoveSubmit:w,handleMoveToRoot:D,getDisabledFolderIds:b,getDisabledMessage:k,canMoveToRoot:x}};exports.useMoveEntities=$;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),C=require("react-toastify");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");const E=require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");require("../../../../../_virtual/jsx-runtime.cjs.js");require("@ynput/ayon-react-components");;/* empty css */require("clsx");require("react-dom");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/SubtasksModulesContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");const O=require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");const P=require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("lodash");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("react-router-dom");require("../../SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/react-table");require("@tanstack/react-virtual");require("@tanstack/match-sorter-utils");require("../../SimpleTable/context/SimpleTableContext.cjs.js");require("../../SimpleTable/SimpleTableRowTemplate.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../Slicer/components/SlicerSearch.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../widgets/CollapsedWidget.cjs.js");require("../widgets/DateWidget.cjs.js");require("../widgets/EnumWidget.cjs.js");require("../widgets/TextWidget.cjs.js");require("../widgets/BooleanWidget.cjs.js");require("../widgets/CellWidget.cjs.js");require("../widgets/EntityNameWidget.cjs.js");require("../widgets/GroupHeaderWidget.cjs.js");require("../widgets/ThumbnailWidget.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");const S=require("../context/ProjectTableContext.cjs.js");require("../widgets/EmptyWidget.cjs.js");require("../widgets/ErrorWidget.cjs.js");require("../context/CellEditingContext.cjs.js");require("short-uuid");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("../widgets/LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("../components/ColumnHeaderMenu.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");const $=({projectName:c})=>{const{movingEntities:i,isEntityPickerOpen:I,openMoveDialog:f,closeMoveDialog:y,setEntityPickerOpen:l,clearMovingEntities:m}=O.useMoveEntityContext(),[p]=E.useUpdateOverviewEntitiesMutation(),{tableData:h,getEntityById:d}=S.useProjectTableContext(),{folders:v}=P.useProjectFoldersContext(),M=a.useCallback(t=>{f(t)},[f]),T=a.useCallback(()=>{y()},[y]),w=a.useCallback(async t=>{if(!i||t.length===0)return;const q=t[0];l(!1);try{const n=i.entities.map((e,u)=>({id:`move-${e.entityId}-${Date.now()}-${u}`,type:"update",entityType:e.entityType,entityId:e.entityId,data:e.entityType==="folder"?{parentId:q}:{folderId:q}})),o=(await p({projectName:c,operationsRequestModel:{operations:n}}).unwrap())?.operations?.filter(e=>e.success===!1)||[];if(o.length>0){const e=o.map(u=>u.detail).join(", ");throw new Error(e||"Some move operations failed")}}catch(n){console.error("Failed to move entity:",n);let r=n?.data?.detail||n?.error||n?.message||"Failed to move entities";if(r.includes("already exists"))if(i.entities.length>1)r="Cannot move some entities - one or more entities with the same name already exist in the target location";else if(i.entities[0].entityType==="task"){const e=r.match(/name '.*?, (.+?)' already exists/);r=`Cannot move "${e?e[1]:"this task"}" - a task with this name already exists in the target folder`}else{const e=r.match(/name '.*?, (.+?)' already exists/);r=`Cannot move "${e?e[1]:"this folder"}" - a folder with this name already exists in the target location`}C.toast.error(r)}finally{m(),l(!1)}},[i,c,p,f,y,l,m]),D=a.useCallback(async()=>{if(i){l(!1);try{const t=i.entities.map((r,o)=>({id:`move-to-root-${r.entityId}-${Date.now()}-${o}`,type:"update",entityType:r.entityType,entityId:r.entityId,data:r.entityType==="folder"?{parentId:null}:{folderId:null}})),n=(await p({projectName:c,operationsRequestModel:{operations:t}}).unwrap())?.operations?.filter(r=>r.success===!1)||[];if(n.length>0){const r=n.map(o=>o.detail).join(", ");throw new Error(r||"Some move operations failed")}}catch(t){console.error("Failed to move entities to root:",t);let q=t?.data?.detail||t?.error||t?.message||"Failed to move entities to root";C.toast.error(q)}finally{m(),l(!1)}}},[i,c,p,f,y,l,m]),b=a.useCallback(()=>{if(!i)return[];const t=[];return i.entities.forEach(q=>{t.push(q.entityId)}),v.forEach(q=>{i.entities.some(r=>{const o=d(r.entityId);return o?.name?h.filter(u=>r.entityType==="folder"?u.entityType==="folder"&&u.parentId===q.id:r.entityType==="task"?u.entityType==="task"&&u.folderId===q.id:!1).some(u=>u.name===o.name&&u.entityId!==r.entityId):!1})&&t.push(q.id)}),[...new Set(t)]},[i,v,h,d]),k=a.useCallback(t=>{if(!i)return;if(i.entities.some(e=>e.entityType==="folder"&&e.entityId===t))return"Cannot move folder to itself";if(i.entities.some(e=>e.currentParentId===t))return"Cannot move to the same location";const r=v.find(e=>e.id===t);if(r){const e=i.entities.find(u=>{const g=d(u.entityId);return g?.name?h.filter(s=>u.entityType==="folder"?s.entityType==="folder"&&s.parentId===r.id:u.entityType==="task"?s.entityType==="task"&&s.folderId===r.id:!1).some(s=>s.name===g.name&&s.entityId!==u.entityId):!1});if(e)return`Cannot move "${d(e.entityId)?.name||"Entity"}" - an entity with the same name already exists in this folder`}return i.entities.some(e=>e.entityType==="folder")?"Cannot move folder to its child":"Cannot move to this location"},[i,v,h,d]),x=a.useMemo(()=>i?.entities.every(t=>t.entityType==="folder")||!1,[i]);return{movingEntities:i,isEntityPickerOpen:I,isDialogOpen:I,openMoveDialog:M,closeMoveDialog:T,handleMoveSubmit:w,handleMoveToRoot:D,getDisabledFolderIds:b,getDisabledMessage:k,canMoveToRoot:x}};exports.useMoveEntities=$;
2
2
  //# sourceMappingURL=useMoveEntities.cjs.js.map
@@ -222,13 +222,13 @@ import "../widgets/GroupHeaderWidget.es.js";
222
222
  import "../widgets/ThumbnailWidget.es.js";
223
223
  import "../context/DetailsPanelEntityContext.es.js";
224
224
  import "../context/SelectedRowsContext.es.js";
225
+ import { useProjectTableContext as P } from "../context/ProjectTableContext.es.js";
225
226
  import "../widgets/EmptyWidget.es.js";
226
227
  import "../widgets/ErrorWidget.es.js";
227
228
  import "../context/CellEditingContext.es.js";
228
229
  import "short-uuid";
229
230
  import "../context/SelectionCellsContext.es.js";
230
231
  import "../context/ProjectTableQueriesContext.es.js";
231
- import { useProjectTableContext as P } from "../context/ProjectTableContext.es.js";
232
232
  import "../context/ClipboardContext.es.js";
233
233
  import "../context/ColumnSettingsContext.es.js";
234
234
  import "../context/ProjectDataContext.es.js";