@ynput/ayon-frontend-shared 0.4.7 → 0.5.0

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 (48) hide show
  1. package/dist/DetailsPanel.es.js +684 -651
  2. package/dist/ListTable.es.js +8 -7
  3. package/dist/ProjectTreeTable.es.js +2223 -2184
  4. package/dist/Slicer.es.js +152 -120
  5. package/dist/api.es.js +202 -201
  6. package/dist/chunks/Actions.es.js +20 -20
  7. package/dist/chunks/ColumnDropIndicator.es.js +127 -241
  8. package/dist/chunks/DeleteEntitiesContext.es.js +36 -36
  9. package/dist/chunks/DetailsDialog.es.js +3 -3
  10. package/dist/chunks/EntityPath.es.js +22 -22
  11. package/dist/chunks/EntityPickerDialog.es.js +1 -1
  12. package/dist/chunks/EntityTooltip.es.js +12 -12
  13. package/dist/chunks/Feed.es.js +2 -2
  14. package/dist/chunks/FilterErrorActions.es.js +5 -5
  15. package/dist/chunks/GlobalContext.es.js +14 -14
  16. package/dist/chunks/InfoMessage.es.js +146 -0
  17. package/dist/chunks/Menu.es.js +5 -5
  18. package/dist/chunks/MenuContext.es.js +75 -73
  19. package/dist/chunks/MetaWidget.es.js +1968 -1960
  20. package/dist/chunks/NewEntityContext.es.js +538 -543
  21. package/dist/chunks/PlayableIcon.es.js +54 -54
  22. package/dist/chunks/ProjectContext.es.js +12 -12
  23. package/dist/chunks/ProjectFoldersContext.es.js +84 -76
  24. package/dist/chunks/RepresentationsList.es.js +1 -1
  25. package/dist/chunks/ReviewablesSelector.es.js +387 -384
  26. package/dist/chunks/SimpleTable.es.js +286 -283
  27. package/dist/chunks/Slicer.es.js +1121 -683
  28. package/dist/chunks/VersionUploadContext.es.js +26 -26
  29. package/dist/chunks/ViewsContext.es.js +31 -31
  30. package/dist/chunks/Watchers.es.js +1 -1
  31. package/dist/chunks/entityDefinitions.es.js +275 -133
  32. package/dist/chunks/getUris.es.js +236 -231
  33. package/dist/chunks/searchTerms.es.js +9 -0
  34. package/dist/chunks/useAttributeEnums.es.js +69 -61
  35. package/dist/chunks/useLocalStorage.es.js +10 -10
  36. package/dist/chunks/viewUpdateHelper.es.js +23 -23
  37. package/dist/components.es.js +166 -166
  38. package/dist/hooks.es.js +44 -43
  39. package/dist/index.es.js +11 -10
  40. package/dist/types/DetailsPanel.d.ts +6 -0
  41. package/dist/types/ProjectTreeTable.d.ts +28 -6
  42. package/dist/types/RepresentationsList.d.ts +3 -0
  43. package/dist/types/SimpleTable.d.ts +1 -0
  44. package/dist/types/Slicer.d.ts +103 -18
  45. package/dist/types/api.d.ts +13 -0
  46. package/dist/types/components.d.ts +7 -5
  47. package/package.json +11 -10
  48. package/dist/chunks/useSlicerSplitter.es.js +0 -18
package/dist/hooks.es.js CHANGED
@@ -1,19 +1,19 @@
1
1
  import { u as V, a as G } from "./chunks/useLocalStorage.es.js";
2
- import { r as Yt, e as _t, w as Zt } from "./chunks/useLocalStorage.es.js";
3
- import { r as ee, f as re, w as oe } from "./chunks/MenuContext.es.js";
4
- import { loadRemote as M } from "@module-federation/enhanced/runtime";
5
- import { useRef as C, useState as k, useEffect as v, useCallback as N } from "react";
2
+ import { r as _t, e as Zt, w as te } from "./chunks/useLocalStorage.es.js";
3
+ import { r as re, f as oe, w as ne } from "./chunks/MenuContext.es.js";
4
+ import { loadRemote as C } from "@module-federation/enhanced/runtime";
5
+ import { useRef as M, useState as k, useEffect as v, useCallback as N } from "react";
6
6
  import b from "semver";
7
- import { f as se, u as ie, a as ae, b as de, c as ue, d as ce } from "./chunks/Watchers.es.js";
8
- import { u as me } from "./chunks/useActionTriggers.es.js";
7
+ import { f as ie, u as ae, a as de, b as ue, c as ce, d as le } from "./chunks/Watchers.es.js";
8
+ import { u as fe } from "./chunks/useActionTriggers.es.js";
9
9
  import { b1 as R } from "./chunks/searchTerms.es.js";
10
- import { bt as T, cM as K } from "./chunks/getUris.es.js";
10
+ import { bu as T, cN as K } from "./chunks/getUris.es.js";
11
11
  import "primereact/confirmdialog";
12
12
  import { u as U } from "./chunks/GlobalContext.es.js";
13
13
  import { toast as j } from "react-toastify";
14
- import { u as pe } from "./chunks/EntityPickerDialog.es.js";
15
- import { a as ye } from "./chunks/ProjectFoldersContext.es.js";
16
- import { u as we } from "./chunks/useGroupedPagination.es.js";
14
+ import { u as ge } from "./chunks/EntityPickerDialog.es.js";
15
+ import { a as he } from "./chunks/ProjectFoldersContext.es.js";
16
+ import { u as Le } from "./chunks/useGroupedPagination.es.js";
17
17
  import { jsx as P, jsxs as F } from "react/jsx-runtime";
18
18
  import "./chunks/ReviewablesSelector.es.js";
19
19
  import "match-sorter";
@@ -34,7 +34,7 @@ import "lodash";
34
34
  import "uuid";
35
35
  import "./chunks/EmptyPlaceholder.es.js";
36
36
  import "./chunks/Menu.es.js";
37
- import "./chunks/ColumnDropIndicator.es.js";
37
+ import "./chunks/InfoMessage.es.js";
38
38
  import "@dnd-kit/core";
39
39
  import "@dnd-kit/sortable";
40
40
  import "@dnd-kit/utilities";
@@ -43,6 +43,7 @@ import "./chunks/useCreateContextMenu.es.js";
43
43
  import "./chunks/VersionUploadContext.es.js";
44
44
  import "./chunks/EntityTooltip.es.js";
45
45
  import "./chunks/ProjectContext.es.js";
46
+ import "./chunks/ColumnDropIndicator.es.js";
46
47
  import { T as Q } from "./chunks/TableSettingsFallback.es.js";
47
48
  import "./chunks/ViewsContext.es.js";
48
49
  import "react-redux";
@@ -54,9 +55,9 @@ import "./chunks/ProjectFoldersContextInstance.es.js";
54
55
  import "./chunks/MenuItem.es.js";
55
56
  import A from "styled-components";
56
57
  import { i as q } from "./chunks/isHTMLElement.es.js";
57
- import { u as Se } from "./chunks/useAttributeEnums.es.js";
58
- const qt = (t, c, e) => {
59
- const a = C(/* @__PURE__ */ new Set()), [m, r] = k(
58
+ import { u as xe } from "./chunks/useAttributeEnums.es.js";
59
+ const zt = (t, c, e) => {
60
+ const a = M(/* @__PURE__ */ new Set()), [m, r] = k(
60
61
  () => h(t)
61
62
  ), [n, f] = k(c.length > 0 && !e);
62
63
  v(() => {
@@ -64,7 +65,7 @@ const qt = (t, c, e) => {
64
65
  }, [JSON.stringify(t), e]);
65
66
  const l = async (s, d, i, p, u) => {
66
67
  try {
67
- const o = await M(`${s}/${d}`, {
68
+ const o = await C(`${s}/${d}`, {
68
69
  from: "runtime"
69
70
  });
70
71
  w(i, s, d, o?.default || p, u);
@@ -180,7 +181,7 @@ const qt = (t, c, e) => {
180
181
  });
181
182
  }
182
183
  return { modules: m, isLoading: n };
183
- }, zt = ({ selectors: t = [], init: c }) => {
184
+ }, Dt = ({ selectors: t = [], init: c }) => {
184
185
  const { user: e } = U(), { data: { frontendPreferences: a = {} } = {} } = e || {}, m = t.filter((l) => l != null).map((l) => l.replace(/\s/g, ""));
185
186
  let r = a;
186
187
  for (const l of m)
@@ -209,7 +210,7 @@ const qt = (t, c, e) => {
209
210
  console.error(h), j.error(h.data?.detail);
210
211
  }
211
212
  }, { isSuccess: !0 }];
212
- }, Dt = ({ groupBy: t, projectName: c, entityType: e }) => {
213
+ }, Ht = ({ groupBy: t, projectName: c, entityType: e }) => {
213
214
  t?.id === "taskType" && (e = "task");
214
215
  const a = t?.id || "", { data: { groups: m = [] } = {}, error: r } = T(
215
216
  { projectName: c, entityType: e, groupingKey: a, empty: !0 },
@@ -233,7 +234,7 @@ const qt = (t, c, e) => {
233
234
  }) => /* @__PURE__ */ P(Q, { feature: "groupAttributes", requiredVersion: t, children: c.map((e) => /* @__PURE__ */ P(z, { children: /* @__PURE__ */ F(D, { variant: "text", icon: e.icon, children: [
234
235
  e.label,
235
236
  /* @__PURE__ */ P($, { icon: "bolt", style: { marginLeft: "auto" } })
236
- ] }) }, e.value)) }), Ht = () => {
237
+ ] }) }, e.value)) }), Jt = () => {
237
238
  const { powerLicense: t } = V(), [c, { outdated: e, isLoading: a }] = G({
238
239
  addon: "powerpack",
239
240
  remote: "slicer",
@@ -249,7 +250,7 @@ const qt = (t, c, e) => {
249
250
  isLoading: a
250
251
  };
251
252
  }, J = ["w", "s"];
252
- function Jt({
253
+ function Wt({
253
254
  reviewables: t,
254
255
  selected: c,
255
256
  onChange: e,
@@ -268,7 +269,7 @@ function Jt({
268
269
  return window.addEventListener("keydown", r), () => window.removeEventListener("keydown", r);
269
270
  }, [m, t, c, e, a]);
270
271
  }
271
- const Wt = () => {
272
+ const Bt = () => {
272
273
  const { data: t, isLoading: c, isError: e } = K({});
273
274
  return {
274
275
  getProductionAddon: N(
@@ -292,28 +293,28 @@ const Wt = () => {
292
293
  };
293
294
  };
294
295
  export {
295
- se as filterProjectStatuses,
296
- Yt as readLocalStorage,
297
- ee as readSessionStorage,
298
- me as useActionTriggers,
299
- ie as useAttributeEnumOptions,
300
- Se as useAttributeEnums,
301
- ae as useEntityUpdate,
302
- de as useFetchAttributeEnumOptions,
303
- Dt as useGetEntityGroups,
304
- Wt as useGetProductionAddon,
305
- Ht as useGroupByRemoteModules,
306
- we as useGroupedPagination,
307
- pe as useHierarchyTable,
296
+ ie as filterProjectStatuses,
297
+ _t as readLocalStorage,
298
+ re as readSessionStorage,
299
+ fe as useActionTriggers,
300
+ ae as useAttributeEnumOptions,
301
+ xe as useAttributeEnums,
302
+ de as useEntityUpdate,
303
+ ue as useFetchAttributeEnumOptions,
304
+ Ht as useGetEntityGroups,
305
+ Bt as useGetProductionAddon,
306
+ Jt as useGroupByRemoteModules,
307
+ Le as useGroupedPagination,
308
+ ge as useHierarchyTable,
308
309
  G as useLoadModule,
309
- qt as useLoadModules,
310
- _t as useLocalStorage,
311
- ye as useQueryArgumentChangeLoading,
312
- Jt as useReviewablesKeyboardNavigation,
313
- ue as useScopedStatuses,
314
- ce as useScopedTypes,
315
- re as useSessionStorage,
316
- zt as useUserProjectConfig,
317
- Zt as writeLocalStorage,
318
- oe as writeSessionStorage
310
+ zt as useLoadModules,
311
+ Zt as useLocalStorage,
312
+ he as useQueryArgumentChangeLoading,
313
+ Wt as useReviewablesKeyboardNavigation,
314
+ ce as useScopedStatuses,
315
+ le as useScopedTypes,
316
+ oe as useSessionStorage,
317
+ Dt as useUserProjectConfig,
318
+ te as writeLocalStorage,
319
+ ne as writeSessionStorage
319
320
  };
package/dist/index.es.js CHANGED
@@ -16,7 +16,7 @@ import "primereact/confirmdialog";
16
16
  import "./chunks/JsonViewer.es.js";
17
17
  import "./chunks/Watchers.es.js";
18
18
  import "react-quill-ayon";
19
- import { U as V } from "./chunks/PlayableIcon.es.js";
19
+ import { U as W } from "./chunks/PlayableIcon.es.js";
20
20
  import "react-markdown";
21
21
  import "remark-gfm";
22
22
  import "rehype-raw";
@@ -25,10 +25,10 @@ import "uuid";
25
25
  import "./chunks/useLocalStorage.es.js";
26
26
  import "@module-federation/enhanced/runtime";
27
27
  import "semver";
28
- import { M as X, u as Y } from "./chunks/MenuContext.es.js";
29
- import { E as _ } from "./chunks/EmptyPlaceholder.es.js";
28
+ import { M as Y, u as Z } from "./chunks/MenuContext.es.js";
29
+ import { E as $ } from "./chunks/EmptyPlaceholder.es.js";
30
30
  import "./chunks/Menu.es.js";
31
- import "./chunks/ColumnDropIndicator.es.js";
31
+ import "./chunks/InfoMessage.es.js";
32
32
  import "@dnd-kit/core";
33
33
  import "@dnd-kit/sortable";
34
34
  import "@dnd-kit/utilities";
@@ -38,19 +38,20 @@ import "./chunks/VersionUploadContext.es.js";
38
38
  import "./chunks/EntityTooltip.es.js";
39
39
  import "./chunks/ProjectContext.es.js";
40
40
  import "./chunks/GlobalContext.es.js";
41
+ import "./chunks/ColumnDropIndicator.es.js";
41
42
  import "./chunks/EntityPickerDialog.es.js";
42
43
  import "./chunks/ViewsContext.es.js";
43
44
  import "react-redux";
44
45
  import "react-router-dom";
45
46
  import "./chunks/Slicer.es.js";
46
47
  import "primereact/splitter";
47
- import { T as rr } from "./chunks/ThumbnailSimple.es.js";
48
+ import { T as or } from "./chunks/ThumbnailSimple.es.js";
48
49
  import "./chunks/ProjectFoldersContextInstance.es.js";
49
50
  import "./chunks/MenuItem.es.js";
50
51
  export {
51
- _ as EmptyPlaceholder,
52
- X as MenuProvider,
53
- rr as ThumbnailSimple,
54
- V as UserImage,
55
- Y as useMenuContext
52
+ $ as EmptyPlaceholder,
53
+ Y as MenuProvider,
54
+ or as ThumbnailSimple,
55
+ W as UserImage,
56
+ Z as useMenuContext
56
57
  };
@@ -100,7 +100,10 @@ declare type DetailsPanelProductFragmentFragment = {
100
100
  name: string;
101
101
  productType: string;
102
102
  latestVersion: {
103
+ id: string;
103
104
  version: number;
105
+ name: string;
106
+ active: boolean;
104
107
  } | null;
105
108
  };
106
109
 
@@ -145,6 +148,7 @@ export declare type DetailsPanelProps = {
145
148
  * structural type in shared/ so the layering rule (shared cannot import src/pages)
146
149
  * is preserved. */
147
150
  entityListsContext?: DetailsPanelEntityListsContext;
151
+ resolveVersionJump?: ResolveVersionJump;
148
152
  };
149
153
 
150
154
  declare type DetailsPanelRepresentationFragmentFragment = {
@@ -356,6 +360,8 @@ declare type ProjectModelWithProducts = ProjectModel & {
356
360
  productTypes: ProductTypeListItem[];
357
361
  };
358
362
 
363
+ declare type ResolveVersionJump = (versionId: string) => (() => void) | undefined;
364
+
359
365
  declare type Status_2 = {
360
366
  name: string;
361
367
  original_name?: string;
@@ -302,6 +302,8 @@ export declare const buildGroupId: (value: string) => string;
302
302
 
303
303
  export declare const buildProductTableRow: (node: EditorProductNode, parentFolder?: MatchingFolder) => TableRow;
304
304
 
305
+ export declare const buildQueryFilters: ({ queryFilters, sliceFilter, sliceFilters, config: { searchKey }, }: UseQueryFiltersProps) => QueryFiltersResult;
306
+
305
307
  export declare const buildRowScope: (groups: boolean, rows: boolean) => RowScope;
306
308
 
307
309
  export declare const buildSummaryFormat: (count: boolean, percent: boolean) => SummaryFormat;
@@ -1977,6 +1979,8 @@ export declare const isMetaRowId: (rowId: string) => boolean;
1977
1979
  */
1978
1980
  export declare const isMetaRowType: (rowId: string, type: MetaRowType) => boolean;
1979
1981
 
1982
+ export declare const isMultiSelectAttribute: (attribute: ProjectTableAttribute) => boolean;
1983
+
1980
1984
  /**
1981
1985
  * Checks if a value is a relative date marker (e.g., "relative:today:0")
1982
1986
  */
@@ -2148,6 +2152,8 @@ declare interface NewEntityOpenConfig {
2148
2152
 
2149
2153
  export declare const NEXT_PAGE_ID = "next-page";
2150
2154
 
2155
+ export declare const NO_MATCH_FOLDER_ID: string;
2156
+
2151
2157
  export declare const normalizeColumnId: (columnId: string, aliases?: ColumnIdAliases) => string;
2152
2158
 
2153
2159
  export declare const normalizeColumnIdList: (columnIds?: string[], aliases?: ColumnIdAliases) => string[];
@@ -2652,7 +2658,7 @@ export declare interface ProjectOverviewContextType {
2652
2658
  taskGroups: EntityGroup[];
2653
2659
  taskFilters: QueryFilterParams;
2654
2660
  folderFilters: QueryFilterParams;
2655
- slicerCountsArgs: {
2661
+ getSlicerCountsArgs: (sliceType: string) => {
2656
2662
  projectName: string;
2657
2663
  filter?: string;
2658
2664
  folderFilter?: string;
@@ -3122,6 +3128,14 @@ export declare const scopeHasGroups: (s: RowScope) => boolean;
3122
3128
 
3123
3129
  export declare const scopeHasRows: (s: RowScope) => boolean;
3124
3130
 
3131
+ export declare const scopeIdsToFolders: (ids: string[], folderIdMap: Record<string, string>, folderScope: Set<string> | null) => string[];
3132
+
3133
+ export declare interface SelectedFoldersResult {
3134
+ selectedFolders: string[];
3135
+ folderScope: Set<string> | null;
3136
+ listPanelSelected: boolean;
3137
+ }
3138
+
3125
3139
  export declare const SelectedRowsContext: Context<SelectedRowsContextType | undefined>;
3126
3140
 
3127
3141
  export declare interface SelectedRowsContextType {
@@ -3181,6 +3195,11 @@ declare type SettingsPanelItem = {
3181
3195
  path?: string;
3182
3196
  };
3183
3197
 
3198
+ export declare interface SliceRowSelection {
3199
+ sliceType: string;
3200
+ rowSelection: RowSelectionState;
3201
+ }
3202
+
3184
3203
  export declare type SoftErrorAction = {
3185
3204
  label: string;
3186
3205
  icon: string;
@@ -3744,11 +3763,13 @@ export declare const useGroupCounts: (params: UseGroupCountsParams) => GroupCoun
3744
3763
  export declare type UseGroupCountsParams = {
3745
3764
  entity: 'task';
3746
3765
  groupBy?: TableGroupBy;
3766
+ extraGroupBys?: TableGroupBy[];
3747
3767
  args: TaskStatsArgs;
3748
3768
  skip?: boolean;
3749
3769
  } | {
3750
3770
  entity: 'version';
3751
3771
  groupBy?: TableGroupBy;
3772
+ extraGroupBys?: TableGroupBy[];
3752
3773
  args: VersionStatsArgs;
3753
3774
  skip?: boolean;
3754
3775
  };
@@ -3775,11 +3796,12 @@ export declare const useProjectTableContext: () => ProjectTableContextType;
3775
3796
 
3776
3797
  export declare const useProjectTableQueriesContext: () => ProjectTableQueriesContextProps;
3777
3798
 
3778
- export declare const useQueryFilters: ({ queryFilters, sliceFilter, config: { searchKey }, }: UseQueryFiltersProps) => QueryFiltersResult;
3799
+ export declare const useQueryFilters: (props: UseQueryFiltersProps) => QueryFiltersResult;
3779
3800
 
3780
3801
  declare interface UseQueryFiltersProps {
3781
3802
  queryFilters: QueryFilter;
3782
3803
  sliceFilter?: Filter | null;
3804
+ sliceFilters?: (Filter | null)[] | null;
3783
3805
  config?: {
3784
3806
  searchKey?: string;
3785
3807
  };
@@ -3819,13 +3841,12 @@ declare interface UseScopedAttributeFieldsProps<T extends AttributeField> {
3819
3841
  allowedScopes?: string[];
3820
3842
  }
3821
3843
 
3822
- export declare const useSelectedFolders: ({ rowSelection, sliceType, pinnedRowSelection, entityListFolderIds, }: UseSelectedFoldersProps) => string[];
3844
+ export declare const useSelectedFolders: ({ slices, entityListFolderIds, getChildFolderIds, }: UseSelectedFoldersProps) => SelectedFoldersResult;
3823
3845
 
3824
3846
  declare interface UseSelectedFoldersProps {
3825
- rowSelection: RowSelectionState;
3826
- sliceType: string;
3827
- pinnedRowSelection?: RowSelectionState | null;
3847
+ slices: SliceRowSelection[];
3828
3848
  entityListFolderIds?: string[];
3849
+ getChildFolderIds?: (folderIds: string[], includeSelf?: boolean) => string[];
3829
3850
  }
3830
3851
 
3831
3852
  export declare const useSelectedRowsContext: () => SelectedRowsContextType;
@@ -4042,6 +4063,7 @@ export declare type VersionStatsArgs = {
4042
4063
  versionFilter?: string;
4043
4064
  productFilter?: string;
4044
4065
  taskFilter?: string;
4066
+ folderFilter?: string;
4045
4067
  folderIds?: string[];
4046
4068
  versionIds?: string[];
4047
4069
  productIds?: string[];
@@ -40,7 +40,10 @@ declare type DetailsPanelProductFragmentFragment = {
40
40
  name: string;
41
41
  productType: string;
42
42
  latestVersion: {
43
+ id: string;
43
44
  version: number;
45
+ name: string;
46
+ active: boolean;
44
47
  } | null;
45
48
  };
46
49
 
@@ -175,6 +175,7 @@ export declare interface SimpleTableProps extends Omit<React.HTMLAttributes<HTML
175
175
  onRowDoubleClick?: (id: string, row: Row<SimpleTableRow>) => void;
176
176
  onRowOptionClick?: (row: SimpleTableRow, selectedRows: string[]) => void;
177
177
  fitContent?: boolean;
178
+ rowIdPrefix?: string;
178
179
  rowContextMenuBuilders?: SimpleTableRowContextMenuBuilder[];
179
180
  children?: (props: SimpleTableCellTemplateProps, row: Row<SimpleTableRow>, table: Table<SimpleTableRow>) => JSX.Element;
180
181
  pt?: {
@@ -72,6 +72,8 @@ declare type AttributeModel = {
72
72
 
73
73
  export declare const buildListFolderRowId: (folderId: string) => string;
74
74
 
75
+ export declare const clampDraggedHeights: (sizes: number[], totalHeight: number, mins: number[]) => number[];
76
+
75
77
  declare type ColumnItemModel = {
76
78
  name: string;
77
79
  visible?: boolean;
@@ -118,15 +120,17 @@ declare interface ContextMenuItemType extends Omit<ContextMenuItemProps, 'contex
118
120
  }
119
121
 
120
122
  export declare type CreateFilterFromSlicer = ({ slice, attribFields, }: {
121
- slice: {
122
- sliceType: SliceType;
123
- rowSelection: RowSelectionState;
124
- } | null;
123
+ slice: SliceSelection | null;
125
124
  attribFields: ProjectTableAttribute[];
126
125
  }) => SliceFilter | null;
127
126
 
128
127
  export declare const createFilterFromSlicer: CreateFilterFromSlicer;
129
128
 
129
+ export declare const createFiltersFromSlicer: ({ slices, attribFields, }: {
130
+ slices: SliceSelection[];
131
+ attribFields: ProjectTableAttribute[];
132
+ }) => SliceFilter[];
133
+
130
134
  export declare const defaultSliceOptions: SliceTypeField[];
131
135
 
132
136
  declare interface EntityMoveData {
@@ -138,6 +142,12 @@ declare interface EntityMoveData {
138
142
 
139
143
  declare type EntityMoveType = 'folder' | 'task';
140
144
 
145
+ export declare interface EntityParentMaps {
146
+ taskFolderIds: Record<string, string>;
147
+ versionFolderIds: Record<string, string>;
148
+ productFolderIds: Record<string, string>;
149
+ }
150
+
141
151
  declare type EnumItem = {
142
152
  value: string | number | number | boolean;
143
153
  label: string;
@@ -216,6 +226,8 @@ declare type GetDefaultViewApiResponse =
216
226
  /** status 200 Successful Response */
217
227
  OverviewViewModel | TaskProgressViewModel | ListsViewModel | ReviewsViewModel | VersionsViewModel | GenericViewModel;
218
228
 
229
+ export declare type GetSlicerCountsSource = (sliceType: string) => SlicerCountsSource | undefined;
230
+
219
231
  declare type GroupCount = {
220
232
  count: number;
221
233
  percentage?: number;
@@ -408,6 +420,8 @@ declare type QueryFilter_5 = {
408
420
  operator?: 'and' | 'or';
409
421
  };
410
422
 
423
+ export declare const resolvePanelLayout: (stored: SlicerPanelHeights, panelIds: string[], collapsed?: string[], containerHeight?: number, defaultHeight?: number) => SlicerPanelLayout;
424
+
411
425
  declare type ReviewsSettings = {
412
426
  rowHeight?: number;
413
427
  sortBy?: string;
@@ -531,17 +545,23 @@ export declare interface SliceData {
531
545
  isAttribute?: boolean;
532
546
  }
533
547
 
534
- export declare interface SliceFilter extends FilterValue {
535
- values: {
536
- id: string;
537
- label: string;
538
- }[];
548
+ export declare interface SliceFilter extends Filter {
549
+ values: FilterValue[];
539
550
  }
540
551
 
541
552
  export declare type SliceMap = Map<string, SimpleTableRow>;
542
553
 
554
+ export declare interface SlicePanel {
555
+ id: string;
556
+ sliceType: SliceType;
557
+ }
558
+
543
559
  export declare const Slicer: FC<SlicerProps>;
544
560
 
561
+ export declare const SLICER_DEFAULT_PANEL_HEIGHT = 180;
562
+
563
+ export declare const SLICER_MIN_PANEL_HEIGHT = 100;
564
+
545
565
  export declare const SLICER_PAGES_CONFIG: SlicerConfig;
546
566
 
547
567
  export declare const SLICER_SPLITTER_PANEL_CONFIG: {
@@ -559,12 +579,23 @@ export declare type SlicerConfig = {
559
579
 
560
580
  export declare interface SlicerContextValue {
561
581
  projectName: string;
582
+ page: string;
562
583
  rowSelection: RowSelectionState;
563
584
  onRowSelectionChange: OnRowSelectionChange;
564
585
  expanded: ExpandedState;
565
586
  onExpandedChange: (expanded: ExpandedState) => void;
566
587
  sliceType: SliceType;
567
588
  onSliceTypeChange: OnSliceTypeChange;
589
+ slices: SlicePanel[];
590
+ addSlicePanel: (sliceType?: SliceType) => void;
591
+ removeSlicePanel: (panelId: string) => void;
592
+ setPanelSliceType: (panelId: string, sliceType: SliceType) => void;
593
+ getPanelSelection: (panelId: string) => RowSelectionState;
594
+ setPanelSelection: (panelId: string, selection: React.SetStateAction<RowSelectionState>) => void;
595
+ getPanelExpanded: (panelId: string) => ExpandedState;
596
+ setPanelExpanded: (panelId: string, expanded: React.SetStateAction<ExpandedState>) => void;
597
+ collapsedPanels: string[];
598
+ togglePanelCollapsed: (panelId: string) => void;
568
599
  isViewSyncPending: boolean;
569
600
  pinnedSlice: PinnedSlice | null;
570
601
  setPinnedSlice: React.Dispatch<React.SetStateAction<PinnedSlice | null>>;
@@ -594,12 +625,34 @@ declare interface SlicerDropdownFallbackProps extends DropdownProps {
594
625
  sliceTypes: SliceType[];
595
626
  }
596
627
 
628
+ declare interface SliceRowSelection {
629
+ sliceType: string;
630
+ rowSelection: RowSelectionState;
631
+ }
632
+
633
+ declare type SlicerPanelHeights = Record<string, number>;
634
+
635
+ declare type SlicerPanelLayout = {
636
+ heights: number[];
637
+ mins: number[];
638
+ sizes: number[];
639
+ minSize: number;
640
+ height: number;
641
+ };
642
+
643
+ export declare interface SlicerPanelSelections {
644
+ sliceSelections: SliceRowSelection[];
645
+ sliceFilters: SliceFilter[];
646
+ isLicensePending: boolean;
647
+ }
648
+
597
649
  export declare interface SlicerProps {
598
650
  sliceFields: SliceTypeField[];
599
651
  entityTypes?: string[];
600
652
  pinnedSliceType?: SliceType;
601
- countsSource?: SlicerCountsSource;
653
+ countsSource?: SlicerCountsSource | GetSlicerCountsSource;
602
654
  onAddToList?: OnAddToList;
655
+ enableSplit?: boolean;
603
656
  }
604
657
 
605
658
  export declare const SlicerProvider: ({ children, page, projectName, viewSettings, isLoadingViews, updateViewSettings, onOpenViewer, onAddToList, ...props }: SlicerProviderProps) => JSX_2.Element;
@@ -629,6 +682,17 @@ export declare interface SlicerTableProps {
629
682
  globalFilter: string;
630
683
  }
631
684
 
685
+ export declare interface SlicerViewSettings {
686
+ sliceType?: SliceType;
687
+ sliceTypes?: SliceType[];
688
+ collapsedSliceTypes?: SliceType[];
689
+ }
690
+
691
+ export declare type SliceSelection = {
692
+ sliceType: SliceType;
693
+ rowSelection: RowSelectionState;
694
+ };
695
+
632
696
  export declare type SliceType = 'hierarchy' | 'assignees' | 'status' | 'type' | 'taskType' | 'entityList' | string;
633
697
 
634
698
  export declare interface SliceTypeField {
@@ -740,26 +804,42 @@ export declare const useHierarchyContextMenuItems: (onAddToList?: OnAddToList, e
740
804
  onCancelRename: () => void;
741
805
  };
742
806
 
807
+ export declare const useHierarchySelection: () => RowSelectionState | null;
808
+
743
809
  export declare const useOptionalSlicerContext: () => SlicerContextValue | undefined;
744
810
 
745
811
  /**
746
812
  * Resolves entity list slicer selections to actual entity IDs.
747
- * When sliceType is 'entityList', fetches entity IDs from each selected list,
748
- * then resolves cross-entity parent references (e.g. task → folder, version → folder/task).
813
+ * When a panel with sliceType 'entityList' exists, fetches entity IDs from each
814
+ * selected list, then resolves cross-entity parent references
815
+ * (e.g. task → folder, version → folder/task).
749
816
  */
750
- export declare const useSelectedEntityIds: ({ rowSelection, sliceType, projectName, }: {
751
- rowSelection: RowSelectionState;
752
- sliceType: SliceType;
817
+ export declare const useSelectedEntityIds: ({ slices, projectName, }: {
818
+ slices: SliceSelection[];
753
819
  projectName: string;
754
820
  }) => {
755
821
  entityIds: SelectedEntityIds;
756
822
  rawEntityIds: SelectedEntityIds;
823
+ parentMaps: EntityParentMaps;
757
824
  isLoading: boolean;
758
825
  };
759
826
 
760
827
  export declare const useSlicerContext: () => SlicerContextValue;
761
828
 
762
- export declare const useSlicerCounts: (source: SlicerCountsSource | undefined, skip?: boolean) => SlicerCounts;
829
+ export declare const useSlicerCounts: (source: SlicerCountsSource | undefined, sliceType: string, allSliceTypes?: string[], skip?: boolean) => SlicerCounts;
830
+
831
+ export declare const useSlicerPanelHeights: (page: string, panelIds: string[], collapsed?: string[], containerHeight?: number) => {
832
+ sizes: number[];
833
+ minSize: number;
834
+ height: number;
835
+ panelHeights: number[];
836
+ layoutKey: string;
837
+ handleResizeEnd: (props: {
838
+ sizes: number[];
839
+ }) => void;
840
+ };
841
+
842
+ export declare const useSlicerPanelSelections: (attribFields: AttributeModel[]) => SlicerPanelSelections;
763
843
 
764
844
  export declare const useSlicerRemotes: () => {
765
845
  useExtraSlices: UseExtraSlices;
@@ -767,15 +847,19 @@ export declare const useSlicerRemotes: () => {
767
847
  SlicerDropdown: ForwardRefExoticComponent< SlicerDropdownFallbackProps & RefAttributes<DropdownRef>>;
768
848
  };
769
849
 
770
- export declare const useSlicerRowSelection: ({ sliceType, page, projectName, ...props }: UseSlicerRowSelectionProps) => {
850
+ export declare const useSlicerRowSelection: ({ sliceTypes, page, projectName, ...props }: UseSlicerRowSelectionProps) => {
771
851
  rowSelection: RowSelectionState;
772
852
  setRowSelection: (value: React.SetStateAction<RowSelectionState>, targetSliceType?: SliceType) => void;
773
853
  expanded: ExpandedState;
774
854
  setExpanded: (value: React.SetStateAction<ExpandedState>, targetSliceType?: SliceType) => void;
855
+ getPanelSelection: (sliceType: SliceType) => RowSelectionState;
856
+ setPanelSelection: (sliceType: SliceType, value: React.SetStateAction<RowSelectionState>) => void;
857
+ getPanelExpanded: (sliceType: SliceType) => ExpandedState;
858
+ setPanelExpanded: (sliceType: SliceType, value: React.SetStateAction<ExpandedState>) => void;
775
859
  };
776
860
 
777
861
  declare type UseSlicerRowSelectionProps = {
778
- sliceType: SliceType;
862
+ sliceTypes: SliceType[];
779
863
  page: string;
780
864
  projectName: string;
781
865
  rowSelection?: RowSelectionState;
@@ -810,6 +894,7 @@ declare type VersionStatsArgs = {
810
894
  versionFilter?: string;
811
895
  productFilter?: string;
812
896
  taskFilter?: string;
897
+ folderFilter?: string;
813
898
  folderIds?: string[];
814
899
  versionIds?: string[];
815
900
  productIds?: string[];
@@ -3854,7 +3854,10 @@ export declare type DetailsPanelProductFragmentFragment = {
3854
3854
  name: string;
3855
3855
  productType: string;
3856
3856
  latestVersion: {
3857
+ id: string;
3857
3858
  version: number;
3859
+ name: string;
3860
+ active: boolean;
3858
3861
  } | null;
3859
3862
  };
3860
3863
 
@@ -8635,7 +8638,10 @@ export declare type GetDetailsPanelRepresentationQuery = {
8635
8638
  folderType: string;
8636
8639
  };
8637
8640
  latestVersion: {
8641
+ id: string;
8638
8642
  version: number;
8643
+ name: string;
8644
+ active: boolean;
8639
8645
  } | null;
8640
8646
  };
8641
8647
  };
@@ -8743,7 +8749,10 @@ export declare type GetDetailsPanelVersionQuery = {
8743
8749
  folderType: string;
8744
8750
  };
8745
8751
  latestVersion: {
8752
+ id: string;
8746
8753
  version: number;
8754
+ name: string;
8755
+ active: boolean;
8747
8756
  } | null;
8748
8757
  };
8749
8758
  task: {
@@ -9155,6 +9164,8 @@ export declare type GetGroupedVersionsListArgs = {
9155
9164
  taskFilter?: string;
9156
9165
  folderFilter?: string;
9157
9166
  folderIds?: string[];
9167
+ versionIds?: string[];
9168
+ productIds?: string[];
9158
9169
  desc?: boolean;
9159
9170
  sortBy?: string;
9160
9171
  featuredOnly?: string[];
@@ -18819,6 +18830,8 @@ declare type TargetsArg = {
18819
18830
  } | null;
18820
18831
  };
18821
18832
 
18833
+ export declare const targetToColumnId: (field: string) => string;
18834
+
18822
18835
  export declare const TASK_TILE_FRAGMENT = "\nfragment taskTileFragment on TaskNode {\n id\n name\n status\n icon: taskType\n thumbnailEntityId: id\n thumbnailId\n profile: assignees\n footer: folder {\n folderType\n }\n updatedAt\n path: folder {\n path\n }\n}\n";
18823
18836
 
18824
18837
  export declare type TaskAttribModel = {