@ynput/ayon-frontend-shared 0.3.44 → 0.3.46

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 (220) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +4 -4
  3. package/dist/ProjectTreeTable.cjs.js +1 -1
  4. package/dist/ProjectTreeTable.es.js +4 -4
  5. package/dist/_virtual/index.cjs15.js +1 -1
  6. package/dist/_virtual/index.cjs19.js +1 -1
  7. package/dist/_virtual/index.cjs6.js +1 -1
  8. package/dist/_virtual/index.cjs8.js +1 -1
  9. package/dist/_virtual/index.es15.js +2 -2
  10. package/dist/_virtual/index.es16.js +2 -2
  11. package/dist/_virtual/index.es17.js +2 -2
  12. package/dist/_virtual/index.es18.js +2 -2
  13. package/dist/_virtual/index.es19.js +2 -2
  14. package/dist/_virtual/index.es6.js +2 -2
  15. package/dist/_virtual/index.es8.js +2 -2
  16. package/dist/index.cjs.js +1 -1
  17. package/dist/index.es.js +4 -4
  18. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  19. package/dist/node_modules/remove-accents/index.es.js +1 -1
  20. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  21. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  22. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  23. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  24. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  25. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  26. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  27. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  28. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  29. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  30. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  31. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  32. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  33. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  34. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  35. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +4 -4
  36. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  37. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +4 -4
  38. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  39. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +4 -4
  40. package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js +1 -1
  41. package/dist/shared/src/components/LinksManager/CellEditingDialog.cjs.js.map +1 -1
  42. package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js +20 -20
  43. package/dist/shared/src/components/LinksManager/CellEditingDialog.es.js.map +1 -1
  44. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  45. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -4
  46. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
  47. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +4 -4
  48. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  49. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +4 -4
  50. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  51. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +5 -5
  52. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  53. package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -4
  54. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  55. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -4
  56. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  57. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +4 -4
  58. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  59. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -4
  60. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  61. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  62. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +84 -69
  63. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  64. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  65. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +4 -4
  66. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
  67. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +4 -4
  68. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  69. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -4
  70. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  71. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -4
  72. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  73. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +4 -4
  74. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  75. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -4
  76. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  77. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -4
  78. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  79. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -4
  80. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  81. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -4
  82. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  83. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +4 -4
  84. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  85. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -4
  86. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  87. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +4 -4
  88. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  89. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +4 -4
  90. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
  91. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +4 -4
  92. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  93. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +4 -4
  94. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  95. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +4 -4
  96. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  97. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  98. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +15 -15
  99. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  100. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  101. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -4
  102. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  103. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -4
  104. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  105. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -4
  106. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  107. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +4 -4
  108. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  109. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +4 -4
  110. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  111. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -4
  112. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
  113. package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +4 -4
  114. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +1 -1
  115. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +4 -4
  116. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  117. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +4 -4
  118. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  119. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -4
  120. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  121. package/dist/shared/src/containers/ListTable/ListTable.es.js +4 -4
  122. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  123. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +4 -4
  124. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  125. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +4 -4
  126. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  127. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +4 -4
  128. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  129. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -4
  130. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  131. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +4 -4
  132. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  133. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -4
  134. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  135. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -4
  136. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  137. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -4
  138. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -5
  139. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  140. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +83 -86
  141. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  142. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  143. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +4 -4
  144. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  145. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -4
  146. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  147. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +4 -4
  148. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  149. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +4 -4
  150. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  151. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -4
  152. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  153. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -4
  154. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  155. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -4
  156. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  157. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +4 -4
  158. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  159. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  160. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +31 -23
  161. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  162. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  163. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -4
  164. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  165. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -4
  166. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  167. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -4
  168. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  169. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -4
  170. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  171. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +5 -5
  172. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  173. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -4
  174. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  175. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +4 -4
  176. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  177. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +4 -4
  178. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js +1 -1
  179. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
  180. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js +23 -13
  181. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
  182. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
  183. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +4 -4
  184. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
  185. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -4
  186. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
  187. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +4 -4
  188. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  189. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +4 -4
  190. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  191. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -4
  192. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  193. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +4 -4
  194. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  195. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -4
  196. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  197. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  198. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +169 -169
  199. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  200. package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.cjs.js +1 -1
  201. package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.cjs.js.map +1 -1
  202. package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.es.js +13 -13
  203. package/dist/shared/src/containers/SimpleTable/hooks/useRowKeydown.es.js.map +1 -1
  204. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
  205. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +4 -4
  206. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  207. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  208. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +55 -54
  209. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  210. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  211. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  212. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +14 -14
  213. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  214. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  215. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +3 -3
  216. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  217. package/dist/shared/src/context/WebsocketContext.es.js +4 -4
  218. package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +8 -1
  219. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +6 -1
  220. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
- import { j as V } from "../../../../../_virtual/jsx-runtime.es.js";
2
- import { useCallback as a, useMemo as b, useContext as R } from "react";
3
- import { useSessionStorage as k } from "../../../hooks/useSessionStorage.es.js";
1
+ import { j as R } from "../../../../../_virtual/jsx-runtime.es.js";
2
+ import { useCallback as a, useMemo as k, useContext as w } from "react";
3
+ import { useSessionStorage as j } from "../../../hooks/useSessionStorage.es.js";
4
4
  import "../../../context/RemoteModulesContext.es.js";
5
5
  import "../../../../../_virtual/runtime.es.js";
6
6
  import "../../../../../_virtual/semver.es.js";
@@ -125,17 +125,10 @@ import "../../../context/ProjectFoldersContextInstance.es.js";
125
125
  import "react-redux";
126
126
  import "custom-protocol-check";
127
127
  import "../../ProjectTreeTable/components/GroupSettingsFallback.es.js";
128
- import { useViewsContext as L } from "../../Views/context/ViewsContext.es.js";
129
- import "../../Views/Views.styled.es.js";
130
- import "clsx";
131
- import "@ynput/ayon-react-components";
132
- import "../../Views/ViewsMenuContainer/ViewsMenuContainer.es.js";
133
- import "../../Views/ViewsMenu/ViewsMenu.es.js";
134
- import { useViewUpdateHelper as j } from "../../Views/utils/viewUpdateHelper.es.js";
135
- import { SlicerContext as w } from "./SlicerContextInstance.es.js";
136
- import { useSlicerRemotes as G } from "../hooks/useSlicerRemotes.es.js";
137
- import { useSlicerRowSelection as I } from "../hooks/useSlicerRowSelection.es.js";
138
- const lo = {
128
+ import { SlicerContext as E } from "./SlicerContextInstance.es.js";
129
+ import { useSlicerRemotes as L } from "../hooks/useSlicerRemotes.es.js";
130
+ import { useSlicerRowSelection as G } from "../hooks/useSlicerRowSelection.es.js";
131
+ const oi = {
139
132
  progress: {
140
133
  fields: [
141
134
  { value: "hierarchy" },
@@ -166,93 +159,101 @@ const lo = {
166
159
  { value: "entityList" }
167
160
  ]
168
161
  }
169
- }, ao = ({ children: m, page: c, projectName: E, ...s }) => {
170
- const { viewSettings: P, isLoadingViews: u } = L(), { updateViewSettings: d } = j(), n = s.sliceType ?? P?.sliceType ?? "hierarchy", { rowSelection: o, setRowSelection: r, expanded: l, setExpanded: p } = I({
162
+ }, ii = ({
163
+ children: e,
164
+ page: c,
165
+ projectName: P,
166
+ viewSettings: T,
167
+ isLoadingViews: u,
168
+ updateViewSettings: v,
169
+ ...s
170
+ }) => {
171
+ const n = s.sliceType ?? T?.sliceType ?? "hierarchy", { rowSelection: i, setRowSelection: r, expanded: l, setExpanded: p } = G({
171
172
  sliceType: n,
172
173
  page: c,
173
- projectName: E,
174
+ projectName: P,
174
175
  ...s
175
- }), [i, e] = k(
176
+ }), [o, m] = j(
176
177
  `slicer-pinned-slice-${c}`,
177
178
  null
178
- ), v = a(
179
+ ), d = a(
179
180
  (t) => {
180
181
  r(t);
181
182
  },
182
183
  [r]
183
- ), S = a(
184
- (t, y) => {
184
+ ), h = a(
185
+ (t, x) => {
185
186
  if (s.onSliceTypeChange)
186
- s.onSliceTypeChange(t, y);
187
+ s.onSliceTypeChange(t, x);
187
188
  else {
188
189
  const C = () => {
189
190
  };
190
- d({ sliceType: t }, C, C, {});
191
+ v({ sliceType: t }, C, C, {});
191
192
  }
192
- i && t === i.sliceType ? (r(i.rowSelection, t), p(i.expanded, t), e(null)) : (console.log("Clearing current pinned slice as switching to a different slice type"), r({}, t), p({}, t)), y && (console.log("Pinning current slice type and selection data", o), e({
193
+ o && t === o.sliceType ? (r(o.rowSelection, t), p(o.expanded, t), m(null)) : (console.log("Clearing current pinned slice as switching to a different slice type"), r({}, t), p({}, t)), x && (console.log("Pinning current slice type and selection data", i), m({
193
194
  sliceType: n,
194
- rowSelection: o,
195
+ rowSelection: i,
195
196
  expanded: l
196
197
  }));
197
198
  },
198
199
  [
199
- d,
200
- o,
201
- r,
200
+ v,
202
201
  i,
203
- e,
202
+ r,
203
+ o,
204
+ m,
204
205
  l,
205
206
  p
206
207
  ]
207
- ), g = a(
208
+ ), S = a(
208
209
  (t) => {
209
210
  p(t);
210
211
  },
211
212
  [p]
212
- ), { useExtraSlices: h, isLoadingExtraSlices: f, SlicerDropdown: x } = G(), T = b(
213
+ ), { useExtraSlices: y, isLoadingExtraSlices: f, SlicerDropdown: g } = L(), b = k(
213
214
  () => ({
214
- useExtraSlices: h,
215
+ useExtraSlices: y,
215
216
  isLoadingExtraSlices: f,
216
- SlicerDropdown: x,
217
+ SlicerDropdown: g,
217
218
  // SLICE TYPE
218
219
  sliceType: n,
219
- onSliceTypeChange: S,
220
+ onSliceTypeChange: h,
220
221
  // ROW SELECTION
221
- rowSelection: o,
222
- onRowSelectionChange: v,
222
+ rowSelection: i,
223
+ onRowSelectionChange: d,
223
224
  // PINNED SLICE
224
- pinnedSlice: i,
225
- setPinnedSlice: e,
225
+ pinnedSlice: o,
226
+ setPinnedSlice: m,
226
227
  expanded: l,
227
- onExpandedChange: g,
228
+ onExpandedChange: S,
228
229
  // loading state
229
230
  isViewSyncPending: u
230
231
  }),
231
232
  [
232
- h,
233
+ y,
233
234
  f,
234
- x,
235
+ g,
235
236
  n,
236
- S,
237
- o,
238
- v,
237
+ h,
239
238
  i,
240
- e,
239
+ d,
240
+ o,
241
+ m,
241
242
  l,
242
- g,
243
+ S,
243
244
  u
244
245
  ]
245
246
  );
246
- return /* @__PURE__ */ V.jsx(w.Provider, { value: T, children: m });
247
- }, co = () => {
248
- const m = R(w);
249
- if (m === void 0)
247
+ return /* @__PURE__ */ R.jsx(E.Provider, { value: b, children: e });
248
+ }, ri = () => {
249
+ const e = w(E);
250
+ if (e === void 0)
250
251
  throw new Error("useSlicerContext must be used within a SlicerProvider");
251
- return m;
252
+ return e;
252
253
  };
253
254
  export {
254
- lo as SLICER_PAGES_CONFIG,
255
- ao as SlicerProvider,
256
- co as useSlicerContext
255
+ oi as SLICER_PAGES_CONFIG,
256
+ ii as SlicerProvider,
257
+ ri as useSlicerContext
257
258
  };
258
259
  //# sourceMappingURL=SlicerContext.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SlicerContext.es.js","sources":["../../../../../../src/containers/Slicer/context/SlicerContext.tsx"],"sourcesContent":["import {\n useContext,\n ReactNode,\n ForwardRefExoticComponent,\n RefAttributes,\n useCallback,\n useMemo,\n} from 'react'\nimport { ExpandedState, RowSelectionState } from '@tanstack/react-table'\nimport { SliceType } from '@shared/containers/Slicer'\nimport { SimpleTableRow } from '@shared/containers/SimpleTable'\nimport { useSessionStorage } from '@shared/hooks'\nimport type { ProjectModel, Assignees, AttributeModel, ProductType } from '@shared/api'\nimport { SlicerDropdownFallbackProps } from '../components/SlicerDropdownFallback'\nimport { DropdownRef } from '@ynput/ayon-react-components'\nimport { PinnedSlice, SliceTypeField } from '../types'\nimport { useViewsContext, useViewUpdateHelper } from '@shared/containers/Views'\nimport { SlicerContext } from './SlicerContextInstance'\nimport { useSlicerRemotes } from '../hooks/useSlicerRemotes'\nimport { useSlicerRowSelection } from '../hooks/useSlicerRowSelection'\n\nexport const SLICER_PAGES_CONFIG: SlicerConfig = {\n progress: {\n fields: [\n { value: 'hierarchy' },\n { value: 'assignees' },\n { value: 'status' },\n { value: 'taskType' },\n ],\n },\n overview: {\n fields: [\n { value: 'hierarchy' },\n { value: 'assignees' },\n { value: 'status' },\n { value: 'type' },\n { value: 'taskType' },\n { value: 'attributes' },\n { value: 'entityList' },\n ],\n },\n versions: {\n fields: [\n { value: 'hierarchy' },\n { value: 'assignees', label: 'Task assignee' },\n { value: 'status', label: 'Version status' },\n { value: 'author', label: 'Version author' },\n { value: 'productType' },\n { value: 'taskType' },\n { value: 'entityList' },\n ],\n },\n}\n\nexport type OnSliceTypeChange = (sliceType: SliceType, pinCurrent?: boolean) => void\n\nexport type SlicerConfig = {\n [page: string]: {\n fields: SliceTypeField[]\n }\n}\n\ntype ExtraSlices = {\n formatStatuses: (project?: ProjectModel, scopes?: string[]) => SimpleTableRow[]\n formatTaskTypes: (project?: ProjectModel) => SimpleTableRow[]\n formatProductTypes: (productTypes: ProductType[]) => SimpleTableRow[]\n formatTypes: (project?: ProjectModel) => SimpleTableRow[]\n formatAssignees: (assignees: Assignees) => SimpleTableRow[]\n formatAttribute: (attribute: AttributeModel) => SimpleTableRow[]\n formatAuthors: (project?: ProjectModel) => SimpleTableRow[]\n}\n\nexport type UseExtraSlices = () => ExtraSlices\n\ntype OnRowSelectionChange = (selection: RowSelectionState) => void\n\nexport interface SlicerContextValue {\n rowSelection: RowSelectionState\n onRowSelectionChange: OnRowSelectionChange\n expanded: ExpandedState\n onExpandedChange: (expanded: ExpandedState) => void\n sliceType: SliceType\n onSliceTypeChange: OnSliceTypeChange\n isViewSyncPending: boolean\n pinnedSlice: PinnedSlice | null\n setPinnedSlice: React.Dispatch<React.SetStateAction<PinnedSlice | null>>\n useExtraSlices: UseExtraSlices\n isLoadingExtraSlices: boolean\n SlicerDropdown: ForwardRefExoticComponent<\n SlicerDropdownFallbackProps & RefAttributes<DropdownRef>\n >\n}\n\ninterface SlicerProviderProps {\n children: ReactNode\n rowSelection?: RowSelectionState\n setRowSelection?: React.Dispatch<React.SetStateAction<RowSelectionState>>\n expanded?: ExpandedState\n setExpanded?: React.Dispatch<React.SetStateAction<ExpandedState>>\n sliceType?: SliceType\n onSliceTypeChange?: OnSliceTypeChange\n page: string\n projectName: string\n}\n\nexport const SlicerProvider = ({ children, page, projectName, ...props }: SlicerProviderProps) => {\n const { viewSettings, isLoadingViews } = useViewsContext()\n // Get view update helper\n const { updateViewSettings } = useViewUpdateHelper()\n\n // @ts-expect-error - sliceType can be on a view\n const sliceType = props.sliceType ?? viewSettings?.sliceType ?? 'hierarchy'\n\n const { rowSelection, setRowSelection, expanded, setExpanded } = useSlicerRowSelection({\n sliceType,\n page,\n projectName,\n ...props,\n })\n\n // this is used to store another slice type whilst the user is viewing a different slice type\n // mostly used for preserving the hierarchy selection when switching to another slice type\n const [pinnedSlice, setPinnedSlice] = useSessionStorage<PinnedSlice | null>(\n `slicer-pinned-slice-${page}`,\n null,\n )\n\n const onRowSelectionChange = useCallback<OnRowSelectionChange>(\n (selection) => {\n setRowSelection(selection) // updates either hierarchy or other selection based on slice type\n },\n [setRowSelection],\n )\n\n const onSliceTypeChange = useCallback<OnSliceTypeChange>(\n (newSliceType, pinCurrent) => {\n if (props.onSliceTypeChange) {\n props.onSliceTypeChange(newSliceType, pinCurrent)\n } else {\n const noOp = () => {}\n // update the view settings with the new slice type\n updateViewSettings({ sliceType: newSliceType }, noOp, noOp, {})\n }\n\n // remove current row selection as it is no longer relevant to the new slice type\n\n // if going to pinned slice type, restore the pinned slice selection and expanded state\n // and remove the pinned slice\n if (pinnedSlice && newSliceType === pinnedSlice.sliceType) {\n setRowSelection(pinnedSlice.rowSelection, newSliceType)\n setExpanded(pinnedSlice.expanded, newSliceType)\n setPinnedSlice(null)\n } else {\n // clear pinned slice if switching to a different slice type\n console.log('Clearing current pinned slice as switching to a different slice type')\n setRowSelection({}, newSliceType)\n setExpanded({}, newSliceType)\n }\n\n // if pinCurrent is true, store the current slice type and selection data in local storage\n if (pinCurrent) {\n console.log('Pinning current slice type and selection data', rowSelection)\n setPinnedSlice({\n sliceType,\n rowSelection,\n expanded,\n })\n }\n },\n [\n updateViewSettings,\n rowSelection,\n setRowSelection,\n pinnedSlice,\n setPinnedSlice,\n expanded,\n setExpanded,\n ],\n )\n\n const onExpandedChange = useCallback(\n (newExpanded: ExpandedState) => {\n setExpanded(newExpanded)\n },\n [setExpanded],\n )\n\n // extra slices are loaded from the powerpack remote module, with a fallback to default empty functions\n const { useExtraSlices, isLoadingExtraSlices, SlicerDropdown } = useSlicerRemotes()\n\n const value = useMemo(\n () => ({\n useExtraSlices,\n isLoadingExtraSlices,\n SlicerDropdown,\n // SLICE TYPE\n sliceType,\n onSliceTypeChange,\n // ROW SELECTION\n rowSelection,\n onRowSelectionChange,\n // PINNED SLICE\n pinnedSlice,\n setPinnedSlice,\n expanded,\n onExpandedChange,\n // loading state\n isViewSyncPending: isLoadingViews,\n }),\n [\n useExtraSlices,\n isLoadingExtraSlices,\n SlicerDropdown,\n sliceType,\n onSliceTypeChange,\n rowSelection,\n onRowSelectionChange,\n pinnedSlice,\n setPinnedSlice,\n expanded,\n onExpandedChange,\n isLoadingViews,\n ],\n )\n\n return <SlicerContext.Provider value={value}>{children}</SlicerContext.Provider>\n}\n\nexport const useSlicerContext = () => {\n const context = useContext(SlicerContext)\n if (context === undefined) {\n throw new Error('useSlicerContext must be used within a SlicerProvider')\n }\n return context\n}\n\nexport default SlicerContext\n"],"names":["SLICER_PAGES_CONFIG","SlicerProvider","children","page","projectName","props","viewSettings","isLoadingViews","useViewsContext","updateViewSettings","useViewUpdateHelper","sliceType","rowSelection","setRowSelection","expanded","setExpanded","useSlicerRowSelection","pinnedSlice","setPinnedSlice","useSessionStorage","onRowSelectionChange","useCallback","selection","onSliceTypeChange","newSliceType","pinCurrent","noOp","onExpandedChange","newExpanded","useExtraSlices","isLoadingExtraSlices","SlicerDropdown","useSlicerRemotes","value","useMemo","jsx","SlicerContext","useSlicerContext","context","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBO,MAAMA,KAAoC;AAAA,EAC/C,UAAU;AAAA,IACR,QAAQ;AAAA,MACN,EAAE,OAAO,YAAA;AAAA,MACT,EAAE,OAAO,YAAA;AAAA,MACT,EAAE,OAAO,SAAA;AAAA,MACT,EAAE,OAAO,WAAA;AAAA,IAAW;AAAA,EACtB;AAAA,EAEF,UAAU;AAAA,IACR,QAAQ;AAAA,MACN,EAAE,OAAO,YAAA;AAAA,MACT,EAAE,OAAO,YAAA;AAAA,MACT,EAAE,OAAO,SAAA;AAAA,MACT,EAAE,OAAO,OAAA;AAAA,MACT,EAAE,OAAO,WAAA;AAAA,MACT,EAAE,OAAO,aAAA;AAAA,MACT,EAAE,OAAO,aAAA;AAAA,IAAa;AAAA,EACxB;AAAA,EAEF,UAAU;AAAA,IACR,QAAQ;AAAA,MACN,EAAE,OAAO,YAAA;AAAA,MACT,EAAE,OAAO,aAAa,OAAO,gBAAA;AAAA,MAC7B,EAAE,OAAO,UAAU,OAAO,iBAAA;AAAA,MAC1B,EAAE,OAAO,UAAU,OAAO,iBAAA;AAAA,MAC1B,EAAE,OAAO,cAAA;AAAA,MACT,EAAE,OAAO,WAAA;AAAA,MACT,EAAE,OAAO,aAAA;AAAA,IAAa;AAAA,EACxB;AAEJ,GAqDaC,KAAiB,CAAC,EAAE,UAAAC,GAAU,MAAAC,GAAM,aAAAC,GAAa,GAAGC,QAAiC;AAChG,QAAM,EAAE,cAAAC,GAAc,gBAAAC,EAAA,IAAmBC,EAAA,GAEnC,EAAE,oBAAAC,EAAA,IAAuBC,EAAA,GAGzBC,IAAYN,EAAM,aAAaC,GAAc,aAAa,aAE1D,EAAE,cAAAM,GAAc,iBAAAC,GAAiB,UAAAC,GAAU,aAAAC,EAAA,IAAgBC,EAAsB;AAAA,IACrF,WAAAL;AAAA,IACA,MAAAR;AAAA,IACA,aAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,CACJ,GAIK,CAACY,GAAaC,CAAc,IAAIC;AAAA,IACpC,uBAAuBhB,CAAI;AAAA,IAC3B;AAAA,EAAA,GAGIiB,IAAuBC;AAAA,IAC3B,CAACC,MAAc;AACb,MAAAT,EAAgBS,CAAS;AAAA,IAC3B;AAAA,IACA,CAACT,CAAe;AAAA,EAAA,GAGZU,IAAoBF;AAAA,IACxB,CAACG,GAAcC,MAAe;AAC5B,UAAIpB,EAAM;AACR,QAAAA,EAAM,kBAAkBmB,GAAcC,CAAU;AAAA,WAC3C;AACL,cAAMC,IAAO,MAAM;AAAA,QAAC;AAEpB,QAAAjB,EAAmB,EAAE,WAAWe,EAAA,GAAgBE,GAAMA,GAAM,EAAE;AAAA,MAChE;AAMA,MAAIT,KAAeO,MAAiBP,EAAY,aAC9CJ,EAAgBI,EAAY,cAAcO,CAAY,GACtDT,EAAYE,EAAY,UAAUO,CAAY,GAC9CN,EAAe,IAAI,MAGnB,QAAQ,IAAI,sEAAsE,GAClFL,EAAgB,CAAA,GAAIW,CAAY,GAChCT,EAAY,CAAA,GAAIS,CAAY,IAI1BC,MACF,QAAQ,IAAI,iDAAiDb,CAAY,GACzEM,EAAe;AAAA,QACb,WAAAP;AAAA,QACA,cAAAC;AAAA,QACA,UAAAE;AAAA,MAAA,CACD;AAAA,IAEL;AAAA,IACA;AAAA,MACEL;AAAA,MACAG;AAAA,MACAC;AAAA,MACAI;AAAA,MACAC;AAAA,MACAJ;AAAA,MACAC;AAAA,IAAA;AAAA,EACF,GAGIY,IAAmBN;AAAA,IACvB,CAACO,MAA+B;AAC9B,MAAAb,EAAYa,CAAW;AAAA,IACzB;AAAA,IACA,CAACb,CAAW;AAAA,EAAA,GAIR,EAAE,gBAAAc,GAAgB,sBAAAC,GAAsB,gBAAAC,EAAA,IAAmBC,EAAA,GAE3DC,IAAQC;AAAA,IACZ,OAAO;AAAA,MACL,gBAAAL;AAAA,MACA,sBAAAC;AAAA,MACA,gBAAAC;AAAA;AAAA,MAEA,WAAApB;AAAA,MACA,mBAAAY;AAAA;AAAA,MAEA,cAAAX;AAAA,MACA,sBAAAQ;AAAA;AAAA,MAEA,aAAAH;AAAA,MACA,gBAAAC;AAAA,MACA,UAAAJ;AAAA,MACA,kBAAAa;AAAA;AAAA,MAEA,mBAAmBpB;AAAA,IAAA;AAAA,IAErB;AAAA,MACEsB;AAAA,MACAC;AAAA,MACAC;AAAA,MACApB;AAAA,MACAY;AAAA,MACAX;AAAA,MACAQ;AAAA,MACAH;AAAA,MACAC;AAAA,MACAJ;AAAA,MACAa;AAAA,MACApB;AAAA,IAAA;AAAA,EACF;AAGF,SAAO4B,gBAAAA,EAAAA,IAACC,EAAc,UAAd,EAAuB,OAAAH,GAAe,UAAA/B,EAAA,CAAS;AACzD,GAEamC,KAAmB,MAAM;AACpC,QAAMC,IAAUC,EAAWH,CAAa;AACxC,MAAIE,MAAY;AACd,UAAM,IAAI,MAAM,uDAAuD;AAEzE,SAAOA;AACT;"}
1
+ {"version":3,"file":"SlicerContext.es.js","sources":["../../../../../../src/containers/Slicer/context/SlicerContext.tsx"],"sourcesContent":["import {\n useContext,\n ReactNode,\n ForwardRefExoticComponent,\n RefAttributes,\n useCallback,\n useMemo,\n} from 'react'\nimport { ExpandedState, RowSelectionState } from '@tanstack/react-table'\nimport { SliceType } from '@shared/containers/Slicer'\nimport { SimpleTableRow } from '@shared/containers/SimpleTable'\nimport { useSessionStorage } from '@shared/hooks'\nimport type { ProjectModel, Assignees, AttributeModel, ProductType } from '@shared/api'\nimport { SlicerDropdownFallbackProps } from '../components/SlicerDropdownFallback'\nimport { DropdownRef } from '@ynput/ayon-react-components'\nimport { PinnedSlice, SliceTypeField } from '../types'\nimport type { ViewSettings } from '@shared/containers/Views'\nimport type { UpdateViewSettingsFn } from '@shared/containers/Views/utils/viewUpdateHelper'\nimport { SlicerContext } from './SlicerContextInstance'\nimport { useSlicerRemotes } from '../hooks/useSlicerRemotes'\nimport { useSlicerRowSelection } from '../hooks/useSlicerRowSelection'\n\nexport const SLICER_PAGES_CONFIG: SlicerConfig = {\n progress: {\n fields: [\n { value: 'hierarchy' },\n { value: 'assignees' },\n { value: 'status' },\n { value: 'taskType' },\n ],\n },\n overview: {\n fields: [\n { value: 'hierarchy' },\n { value: 'assignees' },\n { value: 'status' },\n { value: 'type' },\n { value: 'taskType' },\n { value: 'attributes' },\n { value: 'entityList' },\n ],\n },\n versions: {\n fields: [\n { value: 'hierarchy' },\n { value: 'assignees', label: 'Task assignee' },\n { value: 'status', label: 'Version status' },\n { value: 'author', label: 'Version author' },\n { value: 'productType' },\n { value: 'taskType' },\n { value: 'entityList' },\n ],\n },\n}\n\nexport type OnSliceTypeChange = (sliceType: SliceType, pinCurrent?: boolean) => void\n\nexport type SlicerConfig = {\n [page: string]: {\n fields: SliceTypeField[]\n }\n}\n\ntype ExtraSlices = {\n formatStatuses: (project?: ProjectModel, scopes?: string[]) => SimpleTableRow[]\n formatTaskTypes: (project?: ProjectModel) => SimpleTableRow[]\n formatProductTypes: (productTypes: ProductType[]) => SimpleTableRow[]\n formatTypes: (project?: ProjectModel) => SimpleTableRow[]\n formatAssignees: (assignees: Assignees) => SimpleTableRow[]\n formatAttribute: (attribute: AttributeModel) => SimpleTableRow[]\n formatAuthors: (project?: ProjectModel) => SimpleTableRow[]\n}\n\nexport type UseExtraSlices = () => ExtraSlices\n\ntype OnRowSelectionChange = (selection: RowSelectionState) => void\n\nexport interface SlicerContextValue {\n rowSelection: RowSelectionState\n onRowSelectionChange: OnRowSelectionChange\n expanded: ExpandedState\n onExpandedChange: (expanded: ExpandedState) => void\n sliceType: SliceType\n onSliceTypeChange: OnSliceTypeChange\n isViewSyncPending: boolean\n pinnedSlice: PinnedSlice | null\n setPinnedSlice: React.Dispatch<React.SetStateAction<PinnedSlice | null>>\n useExtraSlices: UseExtraSlices\n isLoadingExtraSlices: boolean\n SlicerDropdown: ForwardRefExoticComponent<\n SlicerDropdownFallbackProps & RefAttributes<DropdownRef>\n >\n}\n\ninterface SlicerProviderProps {\n children: ReactNode\n rowSelection?: RowSelectionState\n setRowSelection?: React.Dispatch<React.SetStateAction<RowSelectionState>>\n expanded?: ExpandedState\n setExpanded?: React.Dispatch<React.SetStateAction<ExpandedState>>\n sliceType?: SliceType\n onSliceTypeChange?: OnSliceTypeChange\n page: string\n projectName: string\n viewSettings: ViewSettings | undefined\n isLoadingViews: boolean\n updateViewSettings: UpdateViewSettingsFn\n}\n\nexport const SlicerProvider = ({\n children,\n page,\n projectName,\n viewSettings,\n isLoadingViews,\n updateViewSettings,\n ...props\n}: SlicerProviderProps) => {\n // @ts-expect-error - sliceType can be on a view\n const sliceType = props.sliceType ?? viewSettings?.sliceType ?? 'hierarchy'\n\n const { rowSelection, setRowSelection, expanded, setExpanded } = useSlicerRowSelection({\n sliceType,\n page,\n projectName,\n ...props,\n })\n\n // this is used to store another slice type whilst the user is viewing a different slice type\n // mostly used for preserving the hierarchy selection when switching to another slice type\n const [pinnedSlice, setPinnedSlice] = useSessionStorage<PinnedSlice | null>(\n `slicer-pinned-slice-${page}`,\n null,\n )\n\n const onRowSelectionChange = useCallback<OnRowSelectionChange>(\n (selection) => {\n setRowSelection(selection) // updates either hierarchy or other selection based on slice type\n },\n [setRowSelection],\n )\n\n const onSliceTypeChange = useCallback<OnSliceTypeChange>(\n (newSliceType, pinCurrent) => {\n if (props.onSliceTypeChange) {\n props.onSliceTypeChange(newSliceType, pinCurrent)\n } else {\n const noOp = () => {}\n // update the view settings with the new slice type\n updateViewSettings({ sliceType: newSliceType }, noOp, noOp, {})\n }\n\n // remove current row selection as it is no longer relevant to the new slice type\n\n // if going to pinned slice type, restore the pinned slice selection and expanded state\n // and remove the pinned slice\n if (pinnedSlice && newSliceType === pinnedSlice.sliceType) {\n setRowSelection(pinnedSlice.rowSelection, newSliceType)\n setExpanded(pinnedSlice.expanded, newSliceType)\n setPinnedSlice(null)\n } else {\n // clear pinned slice if switching to a different slice type\n console.log('Clearing current pinned slice as switching to a different slice type')\n setRowSelection({}, newSliceType)\n setExpanded({}, newSliceType)\n }\n\n // if pinCurrent is true, store the current slice type and selection data in local storage\n if (pinCurrent) {\n console.log('Pinning current slice type and selection data', rowSelection)\n setPinnedSlice({\n sliceType,\n rowSelection,\n expanded,\n })\n }\n },\n [\n updateViewSettings,\n rowSelection,\n setRowSelection,\n pinnedSlice,\n setPinnedSlice,\n expanded,\n setExpanded,\n ],\n )\n\n const onExpandedChange = useCallback(\n (newExpanded: ExpandedState) => {\n setExpanded(newExpanded)\n },\n [setExpanded],\n )\n\n // extra slices are loaded from the powerpack remote module, with a fallback to default empty functions\n const { useExtraSlices, isLoadingExtraSlices, SlicerDropdown } = useSlicerRemotes()\n\n const value = useMemo(\n () => ({\n useExtraSlices,\n isLoadingExtraSlices,\n SlicerDropdown,\n // SLICE TYPE\n sliceType,\n onSliceTypeChange,\n // ROW SELECTION\n rowSelection,\n onRowSelectionChange,\n // PINNED SLICE\n pinnedSlice,\n setPinnedSlice,\n expanded,\n onExpandedChange,\n // loading state\n isViewSyncPending: isLoadingViews,\n }),\n [\n useExtraSlices,\n isLoadingExtraSlices,\n SlicerDropdown,\n sliceType,\n onSliceTypeChange,\n rowSelection,\n onRowSelectionChange,\n pinnedSlice,\n setPinnedSlice,\n expanded,\n onExpandedChange,\n isLoadingViews,\n ],\n )\n\n return <SlicerContext.Provider value={value}>{children}</SlicerContext.Provider>\n}\n\nexport const useSlicerContext = () => {\n const context = useContext(SlicerContext)\n if (context === undefined) {\n throw new Error('useSlicerContext must be used within a SlicerProvider')\n }\n return context\n}\n\nexport default SlicerContext\n"],"names":["SLICER_PAGES_CONFIG","SlicerProvider","children","page","projectName","viewSettings","isLoadingViews","updateViewSettings","props","sliceType","rowSelection","setRowSelection","expanded","setExpanded","useSlicerRowSelection","pinnedSlice","setPinnedSlice","useSessionStorage","onRowSelectionChange","useCallback","selection","onSliceTypeChange","newSliceType","pinCurrent","noOp","onExpandedChange","newExpanded","useExtraSlices","isLoadingExtraSlices","SlicerDropdown","useSlicerRemotes","value","useMemo","jsx","SlicerContext","useSlicerContext","context","useContext"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("lodash");require("react-toastify");require("../../../../../_virtual/jsx-runtime.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");const f=require("../../../util/getEntityTypeIcon.cjs.js"),B=require("../../../util/getAttributeIcon.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");const F=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContextInstance.cjs.js");require("react-redux");require("custom-protocol-check");const z=require("../../../hooks/useHierarchyTable.cjs.js");require("../../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");const G=require("./useUsersTable.cjs.js"),J=require("./useProjectAnatomySlices.cjs.js"),K=require("../context/SlicerContext.cjs.js"),Q=require("./useSlicerAttributesData.cjs.js"),W=require("./useEntityListsSlice.cjs.js"),X=t=>({id:"noValue",name:"noValue",label:`No ${t}`,icon:"unpublished",subRows:[],data:{id:"noValue"}}),Y=t=>({id:"hasValue",name:"hasValue",label:`Some ${t}`,icon:"check",subRows:[],data:{id:"hasValue"}}),h=[{label:"Hierarchy",value:"hierarchy",icon:"table_rows"},{label:"Assignee",value:"assignees",icon:"person"},{label:"Status",value:"status",icon:"arrow_circle_right"},{label:"Task Type",value:"taskType",icon:f.getEntityTypeIcon("task")},{label:"Folder Type",value:"folderType",icon:f.getEntityTypeIcon("folder")},{label:"Product Type",value:"productType",icon:f.getEntityTypeIcon("product")},{label:"Author",value:"author",icon:"attribution"},{label:"Lists",value:"entityList",icon:"list_alt"}],Z=({sliceFields:t,entityTypes:l=[]})=>{const{sliceType:a,onSliceTypeChange:y,useExtraSlices:q,isLoadingExtraSlices:A}=K.useSlicerContext(),{projectName:c}=F.useProjectContext(),{formatAttribute:V}=q(),L=t.filter(e=>h.some(r=>r.value===e.value)).map(e=>({...h.find(i=>i.value===e.value),...e})),E=t.some(e=>e.value==="attributes"),{attributes:S,isLoading:T}=Q({entityTypes:l});E&&typeof V=="function"&&S.forEach(e=>L.push({label:e.data.title||e.name,value:"attrib."+e.name,icon:B.getAttributeIcon(e.name,e.data.type,!!e.data.enum?.length)}));const[C,D]=n.useState(!1),{project:P,getStatuses:j,getTypes:I,getTaskTypes:k,getProductTypes:R,getAttribute:O,isLoading:o}=J({scopes:l,useExtraSlices:q}),{getData:_,isFetching:m}=z.useHierarchyTable({projectName:c||"",folderTypes:P?.folderTypes||[],includeColors:!0}),{getData:w,isLoading:d}=G({projectName:c,useExtraSlices:q}),{getData:H,isLoading:M,isExpandable:N}=W.useEntityListsSlice(l),g=m||o||d||A||T,u={hierarchy:{getData:_,isLoading:m,isExpandable:!0},assignees:{getData:w,isLoading:d,isExpandable:!1,noValue:!0,hasValue:!0},author:{getData:w,isLoading:d,isExpandable:!1},status:{getData:j,isLoading:o,isExpandable:!1},type:{getData:I,isLoading:o,isExpandable:!0},taskType:{getData:k,isLoading:o,isExpandable:!1},productType:{getData:R,isLoading:!1,isExpandable:!1},entityList:{getData:H,isLoading:M,isExpandable:N}};for(const e of S)u["attrib."+e.name]={getData:()=>O(e),isLoading:T,isExpandable:!1,isAttribute:!0};const x={data:[],isExpandable:!1},[b,v]=n.useState(x),s=u[a],U=(e,r)=>{const i=u[e];if(!i){console.warn(`Slice type ${e} not found`);return}(i.isAttribute&&E||t.some(p=>p.value===e))&&y(e,r)};n.useEffect(()=>{if(g)return;(async()=>{try{if(!s)return;D(!0);const r=await s.getData();if(r===void 0)throw window.alert("Slice options failed to load. This likely means the PowerFeatures addon is out of date. Please update to the latest version."),y("hierarchy",!1),new Error("Slice data is undefined");s.hasValue&&r.unshift(Y(a)),s.noValue&&r.unshift(X(a)),v({data:r,isExpandable:s.isExpandable})}catch(r){console.error("Error fetching slice data:",r),v(x)}finally{D(!1)}})()},[a,c,g]);const $=n.useMemo(()=>{const e=new Map,r=[...b.data];for(;r.length>0;){const i=r.shift();if(i&&(e.set(i.id,i),i.subRows&&i.subRows.length>0))for(const p of i.subRows)r.push(p)}return e},[b.data]);return{sliceOptions:L,table:b,sliceMap:$,isLoading:u[a]&&u[a].isLoading||C||g,sliceType:a,handleSliceTypeChange:U}};exports.default=Z;exports.defaultSliceOptions=h;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("lodash");require("react-toastify");require("../../../../../_virtual/jsx-runtime.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");const f=require("../../../util/getEntityTypeIcon.cjs.js"),B=require("../../../util/getAttributeIcon.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");const F=require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContextInstance.cjs.js");require("react-redux");require("custom-protocol-check");const z=require("../../../hooks/useHierarchyTable.cjs.js");require("../../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");const G=require("./useUsersTable.cjs.js"),J=require("./useProjectAnatomySlices.cjs.js"),K=require("../context/SlicerContext.cjs.js"),Q=require("./useSlicerAttributesData.cjs.js"),W=require("./useEntityListsSlice.cjs.js"),X=a=>({id:"noValue",name:"noValue",label:`No ${a}`,icon:"unpublished",subRows:[],data:{id:"noValue"}}),Y=a=>({id:"hasValue",name:"hasValue",label:`Some ${a}`,icon:"check",subRows:[],data:{id:"hasValue"}}),h=[{label:"Hierarchy",value:"hierarchy",icon:"table_rows"},{label:"Assignee",value:"assignees",icon:"person"},{label:"Status",value:"status",icon:"arrow_circle_right"},{label:"Task Type",value:"taskType",icon:f.getEntityTypeIcon("task")},{label:"Folder Type",value:"folderType",icon:f.getEntityTypeIcon("folder")},{label:"Product Type",value:"productType",icon:f.getEntityTypeIcon("product")},{label:"Author",value:"author",icon:"attribution"},{label:"Lists",value:"entityList",icon:"list_alt"}],Z=({sliceFields:a,entityTypes:l=[]})=>{const{sliceType:t,onSliceTypeChange:y,useExtraSlices:q,isLoadingExtraSlices:A}=K.useSlicerContext(),{projectName:c}=F.useProjectContext(),{formatAttribute:V}=q(),L=a.filter(e=>h.some(r=>r.value===e.value)).map(e=>({...h.find(i=>i.value===e.value),...e})),E=a.some(e=>e.value==="attributes"),{attributes:S,isLoading:T}=Q({entityTypes:l});E&&typeof V=="function"&&S.forEach(e=>L.push({label:e.data.title||e.name,value:"attrib."+e.name,icon:B.getAttributeIcon(e.name,e.data.type,!!e.data.enum?.length)}));const[C,D]=n.useState(!1),{project:P,getStatuses:j,getTypes:I,getTaskTypes:k,getProductTypes:R,getAttribute:O,isLoading:o}=J({scopes:l,useExtraSlices:q}),{getData:_,isFetching:m}=z.useHierarchyTable({projectName:c||"",folderTypes:P?.folderTypes||[],includeColors:!0}),{getData:w,isLoading:d}=G({projectName:c,useExtraSlices:q}),{getData:H,isLoading:M,isExpandable:N}=W.useEntityListsSlice(l),g=m||o||d||A&&t!=="hierarchy"||T,u={hierarchy:{getData:_,isLoading:m,isExpandable:!0},assignees:{getData:w,isLoading:d,isExpandable:!1,noValue:!0,hasValue:!0},author:{getData:w,isLoading:d,isExpandable:!1},status:{getData:j,isLoading:o,isExpandable:!1},type:{getData:I,isLoading:o,isExpandable:!0},taskType:{getData:k,isLoading:o,isExpandable:!1},productType:{getData:R,isLoading:!1,isExpandable:!1},entityList:{getData:H,isLoading:M,isExpandable:N}};for(const e of S)u["attrib."+e.name]={getData:()=>O(e),isLoading:T,isExpandable:!1,isAttribute:!0};const x={data:[],isExpandable:!1},[b,v]=n.useState(x),s=u[t],U=(e,r)=>{const i=u[e];if(!i){console.warn(`Slice type ${e} not found`);return}(i.isAttribute&&E||a.some(p=>p.value===e))&&y(e,r)};n.useEffect(()=>{if(g)return;(async()=>{try{if(!s)return;D(!0);const r=await s.getData();if(r===void 0)throw window.alert("Slice options failed to load. This likely means the PowerFeatures addon is out of date. Please update to the latest version."),y("hierarchy",!1),new Error("Slice data is undefined");s.hasValue&&r.unshift(Y(t)),s.noValue&&r.unshift(X(t)),v({data:r,isExpandable:s.isExpandable})}catch(r){console.error("Error fetching slice data:",r),v(x)}finally{D(!1)}})()},[t,c,g]);const $=n.useMemo(()=>{const e=new Map,r=[...b.data];for(;r.length>0;){const i=r.shift();if(i&&(e.set(i.id,i),i.subRows&&i.subRows.length>0))for(const p of i.subRows)r.push(p)}return e},[b.data]);return{sliceOptions:L,table:b,sliceMap:$,isLoading:u[t]&&u[t].isLoading||C||g,sliceType:t,handleSliceTypeChange:U}};exports.default=Z;exports.defaultSliceOptions=h;
2
2
  //# sourceMappingURL=useTableDataBySlice.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTableDataBySlice.cjs.js","sources":["../../../../../../src/containers/Slicer/hooks/useTableDataBySlice.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { useHierarchyTable } from '@shared/hooks'\nimport useUsersTable from './useUsersTable'\nimport useProjectAnatomySlices from './useProjectAnatomySlices'\nimport { Slice, SliceData, SliceTypeField, TableData } from '../types'\nimport { SimpleTableRow } from '@shared/containers/SimpleTable'\nimport { SliceType } from '@shared/containers/Slicer'\nimport { useSlicerContext } from '../context/SlicerContext'\nimport useSlicerAttributesData from './useSlicerAttributesData'\nimport { useEntityListsSlice } from './useEntityListsSlice'\nimport { getAttributeIcon, getEntityTypeIcon } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\n\ninterface TableDataBySliceProps {\n sliceFields: SliceTypeField[]\n entityTypes?: string[] // entity types\n}\n\nconst getNoValue = (field: string): SimpleTableRow => ({\n id: 'noValue',\n name: 'noValue',\n label: `No ${field}`,\n icon: 'unpublished',\n subRows: [],\n data: {\n id: 'noValue',\n },\n})\n\nconst getSomeValue = (field: string): SimpleTableRow => ({\n id: 'hasValue',\n name: 'hasValue',\n label: `Some ${field}`,\n icon: 'check',\n subRows: [],\n data: {\n id: 'hasValue',\n },\n})\n\nexport const defaultSliceOptions: SliceTypeField[] = [\n {\n label: 'Hierarchy',\n value: 'hierarchy' as SliceType,\n icon: 'table_rows',\n },\n {\n label: 'Assignee',\n value: 'assignees' as SliceType,\n icon: 'person',\n },\n {\n label: 'Status',\n value: 'status' as SliceType,\n icon: 'arrow_circle_right',\n },\n {\n label: 'Task Type',\n value: 'taskType' as SliceType,\n icon: getEntityTypeIcon('task'),\n },\n {\n label: 'Folder Type',\n value: 'folderType' as SliceType,\n icon: getEntityTypeIcon('folder'),\n },\n {\n label: 'Product Type',\n value: 'productType' as SliceType,\n icon: getEntityTypeIcon('product'),\n },\n {\n label: 'Author',\n value: 'author' as SliceType,\n icon: 'attribution',\n },\n {\n label: 'Lists',\n value: 'entityList' as SliceType,\n icon: 'list_alt',\n },\n]\n\nconst useTableDataBySlice = ({\n sliceFields,\n entityTypes = [],\n}: TableDataBySliceProps): TableData => {\n const { sliceType, onSliceTypeChange, useExtraSlices, isLoadingExtraSlices } = useSlicerContext()\n const { projectName } = useProjectContext()\n const { formatAttribute } = useExtraSlices()\n\n const sliceOptions = sliceFields\n .filter((f) => defaultSliceOptions.some((o) => o.value === f.value))\n .map((field) => {\n const defaultOption = defaultSliceOptions.find((opt) => opt.value === field.value)\n // use default option as fallback data\n return {\n ...defaultOption,\n ...field,\n }\n })\n\n const showAttributes = sliceFields.some((field) => field.value === 'attributes')\n const { attributes: slicerAttribs, isLoading: isLoadingAttribs } = useSlicerAttributesData({\n entityTypes,\n })\n\n if (showAttributes && typeof formatAttribute === 'function') {\n slicerAttribs.forEach((attr) =>\n sliceOptions.push({\n label: attr.data.title || attr.name,\n value: 'attrib.' + attr.name,\n icon: getAttributeIcon(attr.name, attr.data.type, !!attr.data.enum?.length),\n }),\n )\n }\n\n const [isLoading, setIsLoading] = useState(false)\n\n // project info\n const {\n project,\n getStatuses,\n getTypes,\n getTaskTypes,\n getProductTypes,\n getAttribute,\n isLoading: isLoadingProject,\n } = useProjectAnatomySlices({ scopes: entityTypes, useExtraSlices })\n\n // Hierarchy\n const { getData: getHierarchyData, isFetching: isLoadingHierarchy } = useHierarchyTable({\n projectName: projectName || '',\n folderTypes: project?.folderTypes || [],\n includeColors: true,\n })\n // Users\n const { getData: getUsersData, isLoading: isUsersLoading } = useUsersTable({\n projectName,\n useExtraSlices,\n })\n // Entity Lists\n const {\n getData: getEntityListsData,\n isLoading: isLoadingLists,\n isExpandable: isEntityListExpandable,\n } = useEntityListsSlice(entityTypes)\n const isLoadingData =\n isLoadingHierarchy ||\n isLoadingProject ||\n isUsersLoading ||\n isLoadingExtraSlices ||\n isLoadingAttribs\n\n const builtInSlices: Record<SliceType, SliceData> = {\n hierarchy: {\n getData: getHierarchyData,\n isLoading: isLoadingHierarchy,\n isExpandable: true,\n },\n assignees: {\n getData: getUsersData,\n isLoading: isUsersLoading,\n isExpandable: false,\n noValue: true,\n hasValue: true,\n },\n author: {\n getData: getUsersData,\n isLoading: isUsersLoading,\n isExpandable: false,\n },\n status: {\n getData: getStatuses,\n isLoading: isLoadingProject,\n isExpandable: false,\n },\n type: {\n getData: getTypes,\n isLoading: isLoadingProject,\n isExpandable: true,\n },\n taskType: {\n getData: getTaskTypes,\n isLoading: isLoadingProject,\n isExpandable: false,\n },\n productType: {\n getData: getProductTypes,\n isLoading: false,\n isExpandable: false,\n },\n entityList: {\n getData: getEntityListsData,\n isLoading: isLoadingLists,\n isExpandable: isEntityListExpandable,\n },\n }\n\n for (const attrib of slicerAttribs) {\n builtInSlices['attrib.' + attrib.name] = {\n getData: () => getAttribute(attrib),\n isLoading: isLoadingAttribs,\n isExpandable: false,\n isAttribute: true,\n }\n }\n\n const initSlice = { data: [], isExpandable: false }\n const [slice, setSlice] = useState<Slice>(initSlice)\n const sliceConfig = builtInSlices[sliceType]\n\n const handleSliceTypeChange = (sliceType: SliceType, pinCurrent?: boolean) => {\n // get slice data object\n const sliceConfig = builtInSlices[sliceType]\n if (!sliceConfig) {\n console.warn(`Slice type ${sliceType} not found`)\n return\n }\n // check slice type is enabled\n if (\n (sliceConfig.isAttribute && showAttributes) ||\n sliceFields.some((field) => field.value === sliceType)\n ) {\n onSliceTypeChange(sliceType, pinCurrent)\n }\n }\n\n useEffect(() => {\n // wait for hierarchy data to load before fetching slice data\n if (isLoadingData) return\n\n const fetchData = async () => {\n try {\n if (!sliceConfig) return\n setIsLoading(true)\n const newData = await sliceConfig.getData()\n\n if (newData === undefined) {\n window.alert(\n 'Slice options failed to load. This likely means the PowerFeatures addon is out of date. Please update to the latest version.',\n )\n // setSlice type to hierarchy\n onSliceTypeChange('hierarchy', false)\n throw new Error('Slice data is undefined')\n }\n\n // add some value option\n if (sliceConfig.hasValue) newData.unshift(getSomeValue(sliceType))\n\n // add no value option\n if (sliceConfig.noValue) newData.unshift(getNoValue(sliceType))\n setSlice({\n data: newData,\n isExpandable: sliceConfig.isExpandable,\n })\n } catch (error) {\n console.error('Error fetching slice data:', error)\n // set to initial empty state\n setSlice(initSlice)\n } finally {\n setIsLoading(false)\n }\n }\n\n fetchData()\n }, [sliceType, projectName, isLoadingData])\n\n // from slice data, flatten into a map of ids to rows\n const sliceMap = useMemo(() => {\n const map = new Map<string, SimpleTableRow>()\n const queue: SimpleTableRow[] = [...slice.data]\n\n while (queue.length > 0) {\n const row = queue.shift()\n if (row) {\n map.set(row.id, row)\n if (row.subRows && row.subRows.length > 0) {\n for (const subRow of row.subRows) {\n queue.push(subRow)\n }\n }\n }\n }\n return map\n }, [slice.data])\n\n return {\n sliceOptions,\n table: slice,\n sliceMap,\n isLoading:\n (builtInSlices[sliceType] && builtInSlices[sliceType].isLoading) ||\n isLoading ||\n isLoadingData,\n sliceType,\n handleSliceTypeChange,\n }\n}\n\nexport default useTableDataBySlice\n"],"names":["getNoValue","field","getSomeValue","defaultSliceOptions","getEntityTypeIcon","useTableDataBySlice","sliceFields","entityTypes","sliceType","onSliceTypeChange","useExtraSlices","isLoadingExtraSlices","useSlicerContext","projectName","useProjectContext","formatAttribute","sliceOptions","f","o","opt","showAttributes","slicerAttribs","isLoadingAttribs","useSlicerAttributesData","attr","getAttributeIcon","isLoading","setIsLoading","useState","project","getStatuses","getTypes","getTaskTypes","getProductTypes","getAttribute","isLoadingProject","useProjectAnatomySlices","getHierarchyData","isLoadingHierarchy","useHierarchyTable","getUsersData","isUsersLoading","useUsersTable","getEntityListsData","isLoadingLists","isEntityListExpandable","useEntityListsSlice","isLoadingData","builtInSlices","attrib","initSlice","slice","setSlice","sliceConfig","handleSliceTypeChange","pinCurrent","useEffect","newData","error","sliceMap","useMemo","map","queue","row","subRow"],"mappings":"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"}
1
+ {"version":3,"file":"useTableDataBySlice.cjs.js","sources":["../../../../../../src/containers/Slicer/hooks/useTableDataBySlice.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { useHierarchyTable } from '@shared/hooks'\nimport useUsersTable from './useUsersTable'\nimport useProjectAnatomySlices from './useProjectAnatomySlices'\nimport { Slice, SliceData, SliceTypeField, TableData } from '../types'\nimport { SimpleTableRow } from '@shared/containers/SimpleTable'\nimport { SliceType } from '@shared/containers/Slicer'\nimport { useSlicerContext } from '../context/SlicerContext'\nimport useSlicerAttributesData from './useSlicerAttributesData'\nimport { useEntityListsSlice } from './useEntityListsSlice'\nimport { getAttributeIcon, getEntityTypeIcon } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\n\ninterface TableDataBySliceProps {\n sliceFields: SliceTypeField[]\n entityTypes?: string[] // entity types\n}\n\nconst getNoValue = (field: string): SimpleTableRow => ({\n id: 'noValue',\n name: 'noValue',\n label: `No ${field}`,\n icon: 'unpublished',\n subRows: [],\n data: {\n id: 'noValue',\n },\n})\n\nconst getSomeValue = (field: string): SimpleTableRow => ({\n id: 'hasValue',\n name: 'hasValue',\n label: `Some ${field}`,\n icon: 'check',\n subRows: [],\n data: {\n id: 'hasValue',\n },\n})\n\nexport const defaultSliceOptions: SliceTypeField[] = [\n {\n label: 'Hierarchy',\n value: 'hierarchy' as SliceType,\n icon: 'table_rows',\n },\n {\n label: 'Assignee',\n value: 'assignees' as SliceType,\n icon: 'person',\n },\n {\n label: 'Status',\n value: 'status' as SliceType,\n icon: 'arrow_circle_right',\n },\n {\n label: 'Task Type',\n value: 'taskType' as SliceType,\n icon: getEntityTypeIcon('task'),\n },\n {\n label: 'Folder Type',\n value: 'folderType' as SliceType,\n icon: getEntityTypeIcon('folder'),\n },\n {\n label: 'Product Type',\n value: 'productType' as SliceType,\n icon: getEntityTypeIcon('product'),\n },\n {\n label: 'Author',\n value: 'author' as SliceType,\n icon: 'attribution',\n },\n {\n label: 'Lists',\n value: 'entityList' as SliceType,\n icon: 'list_alt',\n },\n]\n\nconst useTableDataBySlice = ({\n sliceFields,\n entityTypes = [],\n}: TableDataBySliceProps): TableData => {\n const { sliceType, onSliceTypeChange, useExtraSlices, isLoadingExtraSlices } = useSlicerContext()\n const { projectName } = useProjectContext()\n const { formatAttribute } = useExtraSlices()\n\n const sliceOptions = sliceFields\n .filter((f) => defaultSliceOptions.some((o) => o.value === f.value))\n .map((field) => {\n const defaultOption = defaultSliceOptions.find((opt) => opt.value === field.value)\n // use default option as fallback data\n return {\n ...defaultOption,\n ...field,\n }\n })\n\n const showAttributes = sliceFields.some((field) => field.value === 'attributes')\n const { attributes: slicerAttribs, isLoading: isLoadingAttribs } = useSlicerAttributesData({\n entityTypes,\n })\n\n if (showAttributes && typeof formatAttribute === 'function') {\n slicerAttribs.forEach((attr) =>\n sliceOptions.push({\n label: attr.data.title || attr.name,\n value: 'attrib.' + attr.name,\n icon: getAttributeIcon(attr.name, attr.data.type, !!attr.data.enum?.length),\n }),\n )\n }\n\n const [isLoading, setIsLoading] = useState(false)\n\n // project info\n const {\n project,\n getStatuses,\n getTypes,\n getTaskTypes,\n getProductTypes,\n getAttribute,\n isLoading: isLoadingProject,\n } = useProjectAnatomySlices({ scopes: entityTypes, useExtraSlices })\n\n // Hierarchy\n const { getData: getHierarchyData, isFetching: isLoadingHierarchy } = useHierarchyTable({\n projectName: projectName || '',\n folderTypes: project?.folderTypes || [],\n includeColors: true,\n })\n // Users\n const { getData: getUsersData, isLoading: isUsersLoading } = useUsersTable({\n projectName,\n useExtraSlices,\n })\n // Entity Lists\n const {\n getData: getEntityListsData,\n isLoading: isLoadingLists,\n isExpandable: isEntityListExpandable,\n } = useEntityListsSlice(entityTypes)\n const isLoadingData =\n isLoadingHierarchy ||\n isLoadingProject ||\n isUsersLoading ||\n (isLoadingExtraSlices && sliceType !== 'hierarchy') ||\n isLoadingAttribs\n\n const builtInSlices: Record<SliceType, SliceData> = {\n hierarchy: {\n getData: getHierarchyData,\n isLoading: isLoadingHierarchy,\n isExpandable: true,\n },\n assignees: {\n getData: getUsersData,\n isLoading: isUsersLoading,\n isExpandable: false,\n noValue: true,\n hasValue: true,\n },\n author: {\n getData: getUsersData,\n isLoading: isUsersLoading,\n isExpandable: false,\n },\n status: {\n getData: getStatuses,\n isLoading: isLoadingProject,\n isExpandable: false,\n },\n type: {\n getData: getTypes,\n isLoading: isLoadingProject,\n isExpandable: true,\n },\n taskType: {\n getData: getTaskTypes,\n isLoading: isLoadingProject,\n isExpandable: false,\n },\n productType: {\n getData: getProductTypes,\n isLoading: false,\n isExpandable: false,\n },\n entityList: {\n getData: getEntityListsData,\n isLoading: isLoadingLists,\n isExpandable: isEntityListExpandable,\n },\n }\n\n for (const attrib of slicerAttribs) {\n builtInSlices['attrib.' + attrib.name] = {\n getData: () => getAttribute(attrib),\n isLoading: isLoadingAttribs,\n isExpandable: false,\n isAttribute: true,\n }\n }\n\n const initSlice = { data: [], isExpandable: false }\n const [slice, setSlice] = useState<Slice>(initSlice)\n const sliceConfig = builtInSlices[sliceType]\n\n const handleSliceTypeChange = (sliceType: SliceType, pinCurrent?: boolean) => {\n // get slice data object\n const sliceConfig = builtInSlices[sliceType]\n if (!sliceConfig) {\n console.warn(`Slice type ${sliceType} not found`)\n return\n }\n // check slice type is enabled\n if (\n (sliceConfig.isAttribute && showAttributes) ||\n sliceFields.some((field) => field.value === sliceType)\n ) {\n onSliceTypeChange(sliceType, pinCurrent)\n }\n }\n\n useEffect(() => {\n // wait for hierarchy data to load before fetching slice data\n if (isLoadingData) return\n\n const fetchData = async () => {\n try {\n if (!sliceConfig) return\n setIsLoading(true)\n const newData = await sliceConfig.getData()\n\n if (newData === undefined) {\n window.alert(\n 'Slice options failed to load. This likely means the PowerFeatures addon is out of date. Please update to the latest version.',\n )\n // setSlice type to hierarchy\n onSliceTypeChange('hierarchy', false)\n throw new Error('Slice data is undefined')\n }\n\n // add some value option\n if (sliceConfig.hasValue) newData.unshift(getSomeValue(sliceType))\n\n // add no value option\n if (sliceConfig.noValue) newData.unshift(getNoValue(sliceType))\n setSlice({\n data: newData,\n isExpandable: sliceConfig.isExpandable,\n })\n } catch (error) {\n console.error('Error fetching slice data:', error)\n // set to initial empty state\n setSlice(initSlice)\n } finally {\n setIsLoading(false)\n }\n }\n\n fetchData()\n }, [sliceType, projectName, isLoadingData])\n\n // from slice data, flatten into a map of ids to rows\n const sliceMap = useMemo(() => {\n const map = new Map<string, SimpleTableRow>()\n const queue: SimpleTableRow[] = [...slice.data]\n\n while (queue.length > 0) {\n const row = queue.shift()\n if (row) {\n map.set(row.id, row)\n if (row.subRows && row.subRows.length > 0) {\n for (const subRow of row.subRows) {\n queue.push(subRow)\n }\n }\n }\n }\n return map\n }, [slice.data])\n\n return {\n sliceOptions,\n table: slice,\n sliceMap,\n isLoading:\n (builtInSlices[sliceType] && builtInSlices[sliceType].isLoading) ||\n isLoading ||\n isLoadingData,\n sliceType,\n handleSliceTypeChange,\n }\n}\n\nexport default useTableDataBySlice\n"],"names":["getNoValue","field","getSomeValue","defaultSliceOptions","getEntityTypeIcon","useTableDataBySlice","sliceFields","entityTypes","sliceType","onSliceTypeChange","useExtraSlices","isLoadingExtraSlices","useSlicerContext","projectName","useProjectContext","formatAttribute","sliceOptions","f","o","opt","showAttributes","slicerAttribs","isLoadingAttribs","useSlicerAttributesData","attr","getAttributeIcon","isLoading","setIsLoading","useState","project","getStatuses","getTypes","getTaskTypes","getProductTypes","getAttribute","isLoadingProject","useProjectAnatomySlices","getHierarchyData","isLoadingHierarchy","useHierarchyTable","getUsersData","isUsersLoading","useUsersTable","getEntityListsData","isLoadingLists","isEntityListExpandable","useEntityListsSlice","isLoadingData","builtInSlices","attrib","initSlice","slice","setSlice","sliceConfig","handleSliceTypeChange","pinCurrent","useEffect","newData","error","sliceMap","useMemo","map","queue","row","subRow"],"mappings":"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"}
@@ -132,19 +132,19 @@ import Q from "./useProjectAnatomySlices.es.js";
132
132
  import { useSlicerContext as W } from "../context/SlicerContext.es.js";
133
133
  import X from "./useSlicerAttributesData.es.js";
134
134
  import { useEntityListsSlice as Y } from "./useEntityListsSlice.es.js";
135
- const Z = (e) => ({
135
+ const Z = (r) => ({
136
136
  id: "noValue",
137
137
  name: "noValue",
138
- label: `No ${e}`,
138
+ label: `No ${r}`,
139
139
  icon: "unpublished",
140
140
  subRows: [],
141
141
  data: {
142
142
  id: "noValue"
143
143
  }
144
- }), tt = (e) => ({
144
+ }), tt = (r) => ({
145
145
  id: "hasValue",
146
146
  name: "hasValue",
147
- label: `Some ${e}`,
147
+ label: `Some ${r}`,
148
148
  icon: "check",
149
149
  subRows: [],
150
150
  data: {
@@ -192,13 +192,13 @@ const Z = (e) => ({
192
192
  icon: "list_alt"
193
193
  }
194
194
  ], Vo = ({
195
- sliceFields: e,
195
+ sliceFields: r,
196
196
  entityTypes: m = []
197
197
  }) => {
198
- const { sliceType: r, onSliceTypeChange: b, useExtraSlices: n, isLoadingExtraSlices: V } = W(), { projectName: l } = G(), { formatAttribute: k } = n(), h = e.filter((t) => A.some((i) => i.value === t.value)).map((t) => ({
198
+ const { sliceType: e, onSliceTypeChange: b, useExtraSlices: n, isLoadingExtraSlices: V } = W(), { projectName: l } = G(), { formatAttribute: k } = n(), h = r.filter((t) => A.some((i) => i.value === t.value)).map((t) => ({
199
199
  ...A.find((o) => o.value === t.value),
200
200
  ...t
201
- })), y = e.some((t) => t.value === "attributes"), { attributes: L, isLoading: E } = X({
201
+ })), y = r.some((t) => t.value === "attributes"), { attributes: L, isLoading: E } = X({
202
202
  entityTypes: m
203
203
  });
204
204
  y && typeof k == "function" && L.forEach(
@@ -227,7 +227,7 @@ const Z = (e) => ({
227
227
  getData: _,
228
228
  isLoading: M,
229
229
  isExpandable: U
230
- } = Y(m), c = S || p || u || V || E, a = {
230
+ } = Y(m), c = S || p || u || V && e !== "hierarchy" || E, a = {
231
231
  hierarchy: {
232
232
  getData: O,
233
233
  isLoading: S,
@@ -278,13 +278,13 @@ const Z = (e) => ({
278
278
  isExpandable: !1,
279
279
  isAttribute: !0
280
280
  };
281
- const x = { data: [], isExpandable: !1 }, [d, T] = v(x), s = a[r], $ = (t, i) => {
281
+ const x = { data: [], isExpandable: !1 }, [d, T] = v(x), s = a[e], $ = (t, i) => {
282
282
  const o = a[t];
283
283
  if (!o) {
284
284
  console.warn(`Slice type ${t} not found`);
285
285
  return;
286
286
  }
287
- (o.isAttribute && y || e.some((f) => f.value === t)) && b(t, i);
287
+ (o.isAttribute && y || r.some((f) => f.value === t)) && b(t, i);
288
288
  };
289
289
  B(() => {
290
290
  if (c) return;
@@ -297,7 +297,7 @@ const Z = (e) => ({
297
297
  throw window.alert(
298
298
  "Slice options failed to load. This likely means the PowerFeatures addon is out of date. Please update to the latest version."
299
299
  ), b("hierarchy", !1), new Error("Slice data is undefined");
300
- s.hasValue && i.unshift(tt(r)), s.noValue && i.unshift(Z(r)), T({
300
+ s.hasValue && i.unshift(tt(e)), s.noValue && i.unshift(Z(e)), T({
301
301
  data: i,
302
302
  isExpandable: s.isExpandable
303
303
  });
@@ -307,7 +307,7 @@ const Z = (e) => ({
307
307
  D(!1);
308
308
  }
309
309
  })();
310
- }, [r, l, c]);
310
+ }, [e, l, c]);
311
311
  const q = F(() => {
312
312
  const t = /* @__PURE__ */ new Map(), i = [...d.data];
313
313
  for (; i.length > 0; ) {
@@ -322,8 +322,8 @@ const Z = (e) => ({
322
322
  sliceOptions: h,
323
323
  table: d,
324
324
  sliceMap: q,
325
- isLoading: a[r] && a[r].isLoading || C || c,
326
- sliceType: r,
325
+ isLoading: a[e] && a[e].isLoading || C || c,
326
+ sliceType: e,
327
327
  handleSliceTypeChange: $
328
328
  };
329
329
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useTableDataBySlice.es.js","sources":["../../../../../../src/containers/Slicer/hooks/useTableDataBySlice.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { useHierarchyTable } from '@shared/hooks'\nimport useUsersTable from './useUsersTable'\nimport useProjectAnatomySlices from './useProjectAnatomySlices'\nimport { Slice, SliceData, SliceTypeField, TableData } from '../types'\nimport { SimpleTableRow } from '@shared/containers/SimpleTable'\nimport { SliceType } from '@shared/containers/Slicer'\nimport { useSlicerContext } from '../context/SlicerContext'\nimport useSlicerAttributesData from './useSlicerAttributesData'\nimport { useEntityListsSlice } from './useEntityListsSlice'\nimport { getAttributeIcon, getEntityTypeIcon } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\n\ninterface TableDataBySliceProps {\n sliceFields: SliceTypeField[]\n entityTypes?: string[] // entity types\n}\n\nconst getNoValue = (field: string): SimpleTableRow => ({\n id: 'noValue',\n name: 'noValue',\n label: `No ${field}`,\n icon: 'unpublished',\n subRows: [],\n data: {\n id: 'noValue',\n },\n})\n\nconst getSomeValue = (field: string): SimpleTableRow => ({\n id: 'hasValue',\n name: 'hasValue',\n label: `Some ${field}`,\n icon: 'check',\n subRows: [],\n data: {\n id: 'hasValue',\n },\n})\n\nexport const defaultSliceOptions: SliceTypeField[] = [\n {\n label: 'Hierarchy',\n value: 'hierarchy' as SliceType,\n icon: 'table_rows',\n },\n {\n label: 'Assignee',\n value: 'assignees' as SliceType,\n icon: 'person',\n },\n {\n label: 'Status',\n value: 'status' as SliceType,\n icon: 'arrow_circle_right',\n },\n {\n label: 'Task Type',\n value: 'taskType' as SliceType,\n icon: getEntityTypeIcon('task'),\n },\n {\n label: 'Folder Type',\n value: 'folderType' as SliceType,\n icon: getEntityTypeIcon('folder'),\n },\n {\n label: 'Product Type',\n value: 'productType' as SliceType,\n icon: getEntityTypeIcon('product'),\n },\n {\n label: 'Author',\n value: 'author' as SliceType,\n icon: 'attribution',\n },\n {\n label: 'Lists',\n value: 'entityList' as SliceType,\n icon: 'list_alt',\n },\n]\n\nconst useTableDataBySlice = ({\n sliceFields,\n entityTypes = [],\n}: TableDataBySliceProps): TableData => {\n const { sliceType, onSliceTypeChange, useExtraSlices, isLoadingExtraSlices } = useSlicerContext()\n const { projectName } = useProjectContext()\n const { formatAttribute } = useExtraSlices()\n\n const sliceOptions = sliceFields\n .filter((f) => defaultSliceOptions.some((o) => o.value === f.value))\n .map((field) => {\n const defaultOption = defaultSliceOptions.find((opt) => opt.value === field.value)\n // use default option as fallback data\n return {\n ...defaultOption,\n ...field,\n }\n })\n\n const showAttributes = sliceFields.some((field) => field.value === 'attributes')\n const { attributes: slicerAttribs, isLoading: isLoadingAttribs } = useSlicerAttributesData({\n entityTypes,\n })\n\n if (showAttributes && typeof formatAttribute === 'function') {\n slicerAttribs.forEach((attr) =>\n sliceOptions.push({\n label: attr.data.title || attr.name,\n value: 'attrib.' + attr.name,\n icon: getAttributeIcon(attr.name, attr.data.type, !!attr.data.enum?.length),\n }),\n )\n }\n\n const [isLoading, setIsLoading] = useState(false)\n\n // project info\n const {\n project,\n getStatuses,\n getTypes,\n getTaskTypes,\n getProductTypes,\n getAttribute,\n isLoading: isLoadingProject,\n } = useProjectAnatomySlices({ scopes: entityTypes, useExtraSlices })\n\n // Hierarchy\n const { getData: getHierarchyData, isFetching: isLoadingHierarchy } = useHierarchyTable({\n projectName: projectName || '',\n folderTypes: project?.folderTypes || [],\n includeColors: true,\n })\n // Users\n const { getData: getUsersData, isLoading: isUsersLoading } = useUsersTable({\n projectName,\n useExtraSlices,\n })\n // Entity Lists\n const {\n getData: getEntityListsData,\n isLoading: isLoadingLists,\n isExpandable: isEntityListExpandable,\n } = useEntityListsSlice(entityTypes)\n const isLoadingData =\n isLoadingHierarchy ||\n isLoadingProject ||\n isUsersLoading ||\n isLoadingExtraSlices ||\n isLoadingAttribs\n\n const builtInSlices: Record<SliceType, SliceData> = {\n hierarchy: {\n getData: getHierarchyData,\n isLoading: isLoadingHierarchy,\n isExpandable: true,\n },\n assignees: {\n getData: getUsersData,\n isLoading: isUsersLoading,\n isExpandable: false,\n noValue: true,\n hasValue: true,\n },\n author: {\n getData: getUsersData,\n isLoading: isUsersLoading,\n isExpandable: false,\n },\n status: {\n getData: getStatuses,\n isLoading: isLoadingProject,\n isExpandable: false,\n },\n type: {\n getData: getTypes,\n isLoading: isLoadingProject,\n isExpandable: true,\n },\n taskType: {\n getData: getTaskTypes,\n isLoading: isLoadingProject,\n isExpandable: false,\n },\n productType: {\n getData: getProductTypes,\n isLoading: false,\n isExpandable: false,\n },\n entityList: {\n getData: getEntityListsData,\n isLoading: isLoadingLists,\n isExpandable: isEntityListExpandable,\n },\n }\n\n for (const attrib of slicerAttribs) {\n builtInSlices['attrib.' + attrib.name] = {\n getData: () => getAttribute(attrib),\n isLoading: isLoadingAttribs,\n isExpandable: false,\n isAttribute: true,\n }\n }\n\n const initSlice = { data: [], isExpandable: false }\n const [slice, setSlice] = useState<Slice>(initSlice)\n const sliceConfig = builtInSlices[sliceType]\n\n const handleSliceTypeChange = (sliceType: SliceType, pinCurrent?: boolean) => {\n // get slice data object\n const sliceConfig = builtInSlices[sliceType]\n if (!sliceConfig) {\n console.warn(`Slice type ${sliceType} not found`)\n return\n }\n // check slice type is enabled\n if (\n (sliceConfig.isAttribute && showAttributes) ||\n sliceFields.some((field) => field.value === sliceType)\n ) {\n onSliceTypeChange(sliceType, pinCurrent)\n }\n }\n\n useEffect(() => {\n // wait for hierarchy data to load before fetching slice data\n if (isLoadingData) return\n\n const fetchData = async () => {\n try {\n if (!sliceConfig) return\n setIsLoading(true)\n const newData = await sliceConfig.getData()\n\n if (newData === undefined) {\n window.alert(\n 'Slice options failed to load. This likely means the PowerFeatures addon is out of date. Please update to the latest version.',\n )\n // setSlice type to hierarchy\n onSliceTypeChange('hierarchy', false)\n throw new Error('Slice data is undefined')\n }\n\n // add some value option\n if (sliceConfig.hasValue) newData.unshift(getSomeValue(sliceType))\n\n // add no value option\n if (sliceConfig.noValue) newData.unshift(getNoValue(sliceType))\n setSlice({\n data: newData,\n isExpandable: sliceConfig.isExpandable,\n })\n } catch (error) {\n console.error('Error fetching slice data:', error)\n // set to initial empty state\n setSlice(initSlice)\n } finally {\n setIsLoading(false)\n }\n }\n\n fetchData()\n }, [sliceType, projectName, isLoadingData])\n\n // from slice data, flatten into a map of ids to rows\n const sliceMap = useMemo(() => {\n const map = new Map<string, SimpleTableRow>()\n const queue: SimpleTableRow[] = [...slice.data]\n\n while (queue.length > 0) {\n const row = queue.shift()\n if (row) {\n map.set(row.id, row)\n if (row.subRows && row.subRows.length > 0) {\n for (const subRow of row.subRows) {\n queue.push(subRow)\n }\n }\n }\n }\n return map\n }, [slice.data])\n\n return {\n sliceOptions,\n table: slice,\n sliceMap,\n isLoading:\n (builtInSlices[sliceType] && builtInSlices[sliceType].isLoading) ||\n isLoading ||\n isLoadingData,\n sliceType,\n handleSliceTypeChange,\n }\n}\n\nexport default useTableDataBySlice\n"],"names":["getNoValue","field","getSomeValue","defaultSliceOptions","getEntityTypeIcon","useTableDataBySlice","sliceFields","entityTypes","sliceType","onSliceTypeChange","useExtraSlices","isLoadingExtraSlices","useSlicerContext","projectName","useProjectContext","formatAttribute","sliceOptions","f","o","opt","showAttributes","slicerAttribs","isLoadingAttribs","useSlicerAttributesData","attr","getAttributeIcon","isLoading","setIsLoading","useState","project","getStatuses","getTypes","getTaskTypes","getProductTypes","getAttribute","isLoadingProject","useProjectAnatomySlices","getHierarchyData","isLoadingHierarchy","useHierarchyTable","getUsersData","isUsersLoading","useUsersTable","getEntityListsData","isLoadingLists","isEntityListExpandable","useEntityListsSlice","isLoadingData","builtInSlices","attrib","initSlice","slice","setSlice","sliceConfig","handleSliceTypeChange","pinCurrent","useEffect","newData","error","sliceMap","useMemo","map","queue","row","subRow"],"mappings":"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"}
1
+ {"version":3,"file":"useTableDataBySlice.es.js","sources":["../../../../../../src/containers/Slicer/hooks/useTableDataBySlice.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { useHierarchyTable } from '@shared/hooks'\nimport useUsersTable from './useUsersTable'\nimport useProjectAnatomySlices from './useProjectAnatomySlices'\nimport { Slice, SliceData, SliceTypeField, TableData } from '../types'\nimport { SimpleTableRow } from '@shared/containers/SimpleTable'\nimport { SliceType } from '@shared/containers/Slicer'\nimport { useSlicerContext } from '../context/SlicerContext'\nimport useSlicerAttributesData from './useSlicerAttributesData'\nimport { useEntityListsSlice } from './useEntityListsSlice'\nimport { getAttributeIcon, getEntityTypeIcon } from '@shared/util'\nimport { useProjectContext } from '@shared/context'\n\ninterface TableDataBySliceProps {\n sliceFields: SliceTypeField[]\n entityTypes?: string[] // entity types\n}\n\nconst getNoValue = (field: string): SimpleTableRow => ({\n id: 'noValue',\n name: 'noValue',\n label: `No ${field}`,\n icon: 'unpublished',\n subRows: [],\n data: {\n id: 'noValue',\n },\n})\n\nconst getSomeValue = (field: string): SimpleTableRow => ({\n id: 'hasValue',\n name: 'hasValue',\n label: `Some ${field}`,\n icon: 'check',\n subRows: [],\n data: {\n id: 'hasValue',\n },\n})\n\nexport const defaultSliceOptions: SliceTypeField[] = [\n {\n label: 'Hierarchy',\n value: 'hierarchy' as SliceType,\n icon: 'table_rows',\n },\n {\n label: 'Assignee',\n value: 'assignees' as SliceType,\n icon: 'person',\n },\n {\n label: 'Status',\n value: 'status' as SliceType,\n icon: 'arrow_circle_right',\n },\n {\n label: 'Task Type',\n value: 'taskType' as SliceType,\n icon: getEntityTypeIcon('task'),\n },\n {\n label: 'Folder Type',\n value: 'folderType' as SliceType,\n icon: getEntityTypeIcon('folder'),\n },\n {\n label: 'Product Type',\n value: 'productType' as SliceType,\n icon: getEntityTypeIcon('product'),\n },\n {\n label: 'Author',\n value: 'author' as SliceType,\n icon: 'attribution',\n },\n {\n label: 'Lists',\n value: 'entityList' as SliceType,\n icon: 'list_alt',\n },\n]\n\nconst useTableDataBySlice = ({\n sliceFields,\n entityTypes = [],\n}: TableDataBySliceProps): TableData => {\n const { sliceType, onSliceTypeChange, useExtraSlices, isLoadingExtraSlices } = useSlicerContext()\n const { projectName } = useProjectContext()\n const { formatAttribute } = useExtraSlices()\n\n const sliceOptions = sliceFields\n .filter((f) => defaultSliceOptions.some((o) => o.value === f.value))\n .map((field) => {\n const defaultOption = defaultSliceOptions.find((opt) => opt.value === field.value)\n // use default option as fallback data\n return {\n ...defaultOption,\n ...field,\n }\n })\n\n const showAttributes = sliceFields.some((field) => field.value === 'attributes')\n const { attributes: slicerAttribs, isLoading: isLoadingAttribs } = useSlicerAttributesData({\n entityTypes,\n })\n\n if (showAttributes && typeof formatAttribute === 'function') {\n slicerAttribs.forEach((attr) =>\n sliceOptions.push({\n label: attr.data.title || attr.name,\n value: 'attrib.' + attr.name,\n icon: getAttributeIcon(attr.name, attr.data.type, !!attr.data.enum?.length),\n }),\n )\n }\n\n const [isLoading, setIsLoading] = useState(false)\n\n // project info\n const {\n project,\n getStatuses,\n getTypes,\n getTaskTypes,\n getProductTypes,\n getAttribute,\n isLoading: isLoadingProject,\n } = useProjectAnatomySlices({ scopes: entityTypes, useExtraSlices })\n\n // Hierarchy\n const { getData: getHierarchyData, isFetching: isLoadingHierarchy } = useHierarchyTable({\n projectName: projectName || '',\n folderTypes: project?.folderTypes || [],\n includeColors: true,\n })\n // Users\n const { getData: getUsersData, isLoading: isUsersLoading } = useUsersTable({\n projectName,\n useExtraSlices,\n })\n // Entity Lists\n const {\n getData: getEntityListsData,\n isLoading: isLoadingLists,\n isExpandable: isEntityListExpandable,\n } = useEntityListsSlice(entityTypes)\n const isLoadingData =\n isLoadingHierarchy ||\n isLoadingProject ||\n isUsersLoading ||\n (isLoadingExtraSlices && sliceType !== 'hierarchy') ||\n isLoadingAttribs\n\n const builtInSlices: Record<SliceType, SliceData> = {\n hierarchy: {\n getData: getHierarchyData,\n isLoading: isLoadingHierarchy,\n isExpandable: true,\n },\n assignees: {\n getData: getUsersData,\n isLoading: isUsersLoading,\n isExpandable: false,\n noValue: true,\n hasValue: true,\n },\n author: {\n getData: getUsersData,\n isLoading: isUsersLoading,\n isExpandable: false,\n },\n status: {\n getData: getStatuses,\n isLoading: isLoadingProject,\n isExpandable: false,\n },\n type: {\n getData: getTypes,\n isLoading: isLoadingProject,\n isExpandable: true,\n },\n taskType: {\n getData: getTaskTypes,\n isLoading: isLoadingProject,\n isExpandable: false,\n },\n productType: {\n getData: getProductTypes,\n isLoading: false,\n isExpandable: false,\n },\n entityList: {\n getData: getEntityListsData,\n isLoading: isLoadingLists,\n isExpandable: isEntityListExpandable,\n },\n }\n\n for (const attrib of slicerAttribs) {\n builtInSlices['attrib.' + attrib.name] = {\n getData: () => getAttribute(attrib),\n isLoading: isLoadingAttribs,\n isExpandable: false,\n isAttribute: true,\n }\n }\n\n const initSlice = { data: [], isExpandable: false }\n const [slice, setSlice] = useState<Slice>(initSlice)\n const sliceConfig = builtInSlices[sliceType]\n\n const handleSliceTypeChange = (sliceType: SliceType, pinCurrent?: boolean) => {\n // get slice data object\n const sliceConfig = builtInSlices[sliceType]\n if (!sliceConfig) {\n console.warn(`Slice type ${sliceType} not found`)\n return\n }\n // check slice type is enabled\n if (\n (sliceConfig.isAttribute && showAttributes) ||\n sliceFields.some((field) => field.value === sliceType)\n ) {\n onSliceTypeChange(sliceType, pinCurrent)\n }\n }\n\n useEffect(() => {\n // wait for hierarchy data to load before fetching slice data\n if (isLoadingData) return\n\n const fetchData = async () => {\n try {\n if (!sliceConfig) return\n setIsLoading(true)\n const newData = await sliceConfig.getData()\n\n if (newData === undefined) {\n window.alert(\n 'Slice options failed to load. This likely means the PowerFeatures addon is out of date. Please update to the latest version.',\n )\n // setSlice type to hierarchy\n onSliceTypeChange('hierarchy', false)\n throw new Error('Slice data is undefined')\n }\n\n // add some value option\n if (sliceConfig.hasValue) newData.unshift(getSomeValue(sliceType))\n\n // add no value option\n if (sliceConfig.noValue) newData.unshift(getNoValue(sliceType))\n setSlice({\n data: newData,\n isExpandable: sliceConfig.isExpandable,\n })\n } catch (error) {\n console.error('Error fetching slice data:', error)\n // set to initial empty state\n setSlice(initSlice)\n } finally {\n setIsLoading(false)\n }\n }\n\n fetchData()\n }, [sliceType, projectName, isLoadingData])\n\n // from slice data, flatten into a map of ids to rows\n const sliceMap = useMemo(() => {\n const map = new Map<string, SimpleTableRow>()\n const queue: SimpleTableRow[] = [...slice.data]\n\n while (queue.length > 0) {\n const row = queue.shift()\n if (row) {\n map.set(row.id, row)\n if (row.subRows && row.subRows.length > 0) {\n for (const subRow of row.subRows) {\n queue.push(subRow)\n }\n }\n }\n }\n return map\n }, [slice.data])\n\n return {\n sliceOptions,\n table: slice,\n sliceMap,\n isLoading:\n (builtInSlices[sliceType] && builtInSlices[sliceType].isLoading) ||\n isLoading ||\n isLoadingData,\n sliceType,\n handleSliceTypeChange,\n }\n}\n\nexport default useTableDataBySlice\n"],"names":["getNoValue","field","getSomeValue","defaultSliceOptions","getEntityTypeIcon","useTableDataBySlice","sliceFields","entityTypes","sliceType","onSliceTypeChange","useExtraSlices","isLoadingExtraSlices","useSlicerContext","projectName","useProjectContext","formatAttribute","sliceOptions","f","o","opt","showAttributes","slicerAttribs","isLoadingAttribs","useSlicerAttributesData","attr","getAttributeIcon","isLoading","setIsLoading","useState","project","getStatuses","getTypes","getTaskTypes","getProductTypes","getAttribute","isLoadingProject","useProjectAnatomySlices","getHierarchyData","isLoadingHierarchy","useHierarchyTable","getUsersData","isUsersLoading","useUsersTable","getEntityListsData","isLoadingLists","isEntityListExpandable","useEntityListsSlice","isLoadingData","builtInSlices","attrib","initSlice","slice","setSlice","sliceConfig","handleSliceTypeChange","pinCurrent","useEffect","newData","error","sliceMap","useMemo","map","queue","row","subRow"],"mappings":"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"}