@ynput/ayon-frontend-shared 0.7.6 → 0.8.1

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 (70) hide show
  1. package/dist/DetailsPanel.es.js +361 -355
  2. package/dist/Feed.es.js +1 -1
  3. package/dist/ListTable.es.js +18 -18
  4. package/dist/NewEntity.es.js +30 -30
  5. package/dist/ProjectTreeTable.es.js +984 -974
  6. package/dist/ProjectsTable.es.js +3 -3
  7. package/dist/Slicer.es.js +53 -50
  8. package/dist/Views.es.js +150 -151
  9. package/dist/api.es.js +166 -165
  10. package/dist/chunks/Actions.es.js +9 -10
  11. package/dist/chunks/ColumnDropIndicator.es.js +2 -2
  12. package/dist/chunks/ColumnHeaderMenuUI.es.js +3 -4
  13. package/dist/chunks/DeleteEntitiesConfirmDialog.es.js +2 -2
  14. package/dist/chunks/DetailsDialog.es.js +3 -3
  15. package/dist/chunks/EmptyPlaceholder.es.js +7 -7
  16. package/dist/chunks/EntityPath.es.js +38 -39
  17. package/dist/chunks/EntityPickerDialog.es.js +65 -66
  18. package/dist/chunks/EntityTooltip.es.js +18 -19
  19. package/dist/chunks/Feed.es.js +1381 -1355
  20. package/dist/chunks/FilmstripEntityCard.es.js +5201 -0
  21. package/dist/chunks/FilterErrorActions.es.js +2 -3
  22. package/dist/chunks/GroupSettingsFallback.es.js +2 -2
  23. package/dist/chunks/Menu.es.js +52 -53
  24. package/dist/chunks/MetaWidget.es.js +1948 -1875
  25. package/dist/chunks/ProjectFoldersContext.es.js +40 -40
  26. package/dist/chunks/RepresentationsList.es.js +1 -1
  27. package/dist/chunks/ReviewablesSelector.es.js +759 -742
  28. package/dist/chunks/SimpleTable.es.js +2 -1
  29. package/dist/chunks/Slicer.es.js +49 -50
  30. package/dist/chunks/TableExportContextInstance.es.js +600 -402
  31. package/dist/chunks/TableSettingsFallback.es.js +3 -4
  32. package/dist/chunks/ThumbnailSimple.es.js +114 -99
  33. package/dist/chunks/VideoPlayer.es.js +8 -9
  34. package/dist/chunks/Watchers.es.js +928 -871
  35. package/dist/chunks/expandRelativeDates.es.js +1 -1
  36. package/dist/chunks/getThumbnailUrl.es.js +33 -21
  37. package/dist/chunks/getUris.es.js +1580 -1610
  38. package/dist/chunks/queryFilterToClientFilter.es.js +1 -1
  39. package/dist/chunks/realtimeUpdatesUtils.es.js +15 -15
  40. package/dist/chunks/searchTerms.es.js +774 -696
  41. package/dist/chunks/useAttributeEnums.es.js +22 -22
  42. package/dist/chunks/useDateRangeFilter.es.js +1 -1
  43. package/dist/chunks/useHierarchySelection.es.js +3 -4
  44. package/dist/chunks/useLoadModule.es.js +3 -4
  45. package/dist/components.es.js +1261 -1206
  46. package/dist/context.es.js +615 -540
  47. package/dist/hooks.es.js +193 -171
  48. package/dist/index.es.js +2 -2
  49. package/dist/types/Actions.d.ts +10 -8
  50. package/dist/types/DetailsPanel.d.ts +54 -76
  51. package/dist/types/EntityPickerDialog.d.ts +12 -6
  52. package/dist/types/Feed.d.ts +24 -24
  53. package/dist/types/ListTable.d.ts +33 -27
  54. package/dist/types/NewEntity.d.ts +26 -39
  55. package/dist/types/ProjectTreeTable.d.ts +275 -194
  56. package/dist/types/ProjectsTable.d.ts +6 -6
  57. package/dist/types/RepresentationsList.d.ts +4 -0
  58. package/dist/types/Slicer.d.ts +63 -246
  59. package/dist/types/Views.d.ts +71 -298
  60. package/dist/types/api.d.ts +3165 -2363
  61. package/dist/types/components.d.ts +444 -473
  62. package/dist/types/context.d.ts +285 -572
  63. package/dist/types/hooks.d.ts +76 -47
  64. package/dist/types/index.d.ts +6 -0
  65. package/dist/types/util.d.ts +141 -120
  66. package/dist/util.es.js +71 -68
  67. package/package.json +6 -6
  68. package/dist/chunks/EntityUpdatesContext.es.js +0 -61
  69. package/dist/chunks/PlayableIcon.es.js +0 -5020
  70. package/dist/chunks/viewUpdateHelper.es.js +0 -153
@@ -24,6 +24,7 @@ import { DropdownRef } from '@ynput/ayon-react-components';
24
24
  import { EditorConfig } from 'lexical';
25
25
  import { ElementFormatType } from 'lexical';
26
26
  import { ElementNode } from 'lexical';
27
+ import { EntityCardProps } from '@ynput/ayon-react-components';
27
28
  import { ExecutionProps } from 'styled-components';
28
29
  import { FastOmit } from 'styled-components';
29
30
  import { FC } from 'react';
@@ -279,6 +280,22 @@ declare interface AddonUser {
279
280
  isDeveloper: boolean
280
281
  }
281
282
 
283
+ /** The addons' sections, each in a panel titled like AYON's own. */
284
+ export declare const AddonUserDetailsSections: ({ context }: AddonUserDetailsSectionsProps) => JSX_2.Element;
285
+
286
+ declare interface AddonUserDetailsSectionsProps {
287
+ context: UserDetailsContext;
288
+ }
289
+
290
+ export declare interface AddonUserMenuItems {
291
+ /** first in the menu (`position: 'top'`) */
292
+ topItems: MenuItemType[];
293
+ /** after the menu's own items, above Delete */
294
+ items: MenuItemType[];
295
+ /** loads the items' code: call it when the menu opens */
296
+ prefetch: () => void;
297
+ }
298
+
282
299
  declare type AlignType = 'left' | 'right';
283
300
 
284
301
  declare type Anatomy = {
@@ -289,7 +306,9 @@ declare type Anatomy = {
289
306
  /** Path templates configuration */
290
307
  templates?: Templates;
291
308
  /** Attributes configuration */
292
- attributes?: ProjectAttribModel;
309
+ attributes?: {
310
+ [key: string]: any;
311
+ };
293
312
  /** Folder types configuration */
294
313
  folder_types?: FolderType[];
295
314
  /** Task types configuration */
@@ -339,36 +358,40 @@ declare type AttributeData_2 = {
339
358
  /** Type of attribute value */
340
359
  type?: 'string' | 'integer' | 'float' | 'boolean' | 'datetime' | 'list_of_strings' | 'list_of_integers' | 'list_of_any' | 'list_of_submodels' | 'dict';
341
360
  /** Nice, human readable title of the attribute */
342
- title?: string;
343
- description?: string;
361
+ title?: string | null;
362
+ description?: string | null;
344
363
  /** Example value of the field. */
345
364
  example?: any;
346
365
  /** Default value for the attribute. Do not set for list types. */
347
366
  default?: any;
348
- gt?: number | number;
349
- ge?: number | number;
350
- lt?: number | number;
351
- le?: number | number;
352
- minLength?: number;
353
- maxLength?: number;
367
+ gt?: number | number | null;
368
+ ge?: number | number | null;
369
+ lt?: number | number | null;
370
+ le?: number | number | null;
371
+ minLength?: number | null;
372
+ maxLength?: number | null;
354
373
  /** Minimum number of items in list type. */
355
- minItems?: number;
374
+ minItems?: number | null;
356
375
  /** Only for list types. Maximum number of items in the list. */
357
- maxItems?: number;
376
+ maxItems?: number | null;
358
377
  /** Only for string types. The value must match this regex. */
359
- regex?: string;
378
+ regex?: string | null;
360
379
  /** List of enum items used for displaying select widgets */
361
- enum?: EnumItem[];
380
+ enum?: EnumItem[] | null;
362
381
  /** Name of the function that provides enum values dynamically. */
363
- enumResolver?: string;
382
+ enumResolver?: string | null;
364
383
  /** Settings passed to the enum resolver function. */
365
- enumResolverSettings?: object;
384
+ enumResolverSettings?: {
385
+ [key: string]: any;
386
+ } | null;
366
387
  /** Inherit the attribute value from the parent entity. */
367
388
  inherit?: boolean;
368
389
  /** Specific widget style this field should use. */
369
- widget?: string;
390
+ widget?: string | null;
370
391
  /** Any additional config specific for the widget style.(Date formats, precision etc.) */
371
- widgetSettings?: object;
392
+ widgetSettings?: {
393
+ [key: string]: any;
394
+ } | null;
372
395
  };
373
396
 
374
397
  declare type AttributeDataValue = AttributeType | null | undefined;
@@ -577,13 +600,6 @@ declare interface ColumnHeaderMenuUIProps {
577
600
 
578
601
  declare type ColumnIdAliases = Record<string, string>;
579
602
 
580
- declare type ColumnItemModel = {
581
- name: string;
582
- visible?: boolean;
583
- pinned?: boolean;
584
- width?: number;
585
- };
586
-
587
603
  export declare const ColumnMenuButton: IStyledComponentBase<"web", FastOmit< FastOmit<Omit< ButtonProps & RefAttributes<HTMLButtonElement>, "ref"> & {
588
604
  ref?: ((instance: HTMLButtonElement | null) => void | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLButtonElement> | null | undefined;
589
605
  }, "$isOpen"> & {
@@ -731,8 +747,8 @@ export declare const createFeedMentionSource: ({ suggestions, project, taskTypes
731
747
 
732
748
  declare type CreateViewApiArg = {
733
749
  viewType: string;
734
- projectName?: string;
735
- payload: OverviewViewPostModel | TaskProgressViewPostModel | ListsViewPostModel | ReviewsViewPostModel | VersionsViewPostModel | GenericViewPostModel;
750
+ projectName?: string | null;
751
+ genericViewPostModel: GenericViewPostModel;
736
752
  };
737
753
 
738
754
  export declare const CUSTOM_RANGE_ICON = "tune";
@@ -888,7 +904,7 @@ export declare type DeleteEntitiesConfirmDialogProps = {
888
904
  declare type DeleteViewApiArg = {
889
905
  viewType: string;
890
906
  viewId: string;
891
- projectName?: string;
907
+ projectName?: string | null;
892
908
  };
893
909
 
894
910
  declare type DeliveryTemplate = {
@@ -1043,6 +1059,8 @@ declare type DetailsPanelEntityData = {
1043
1059
  status: string;
1044
1060
  updatedAt: string;
1045
1061
  createdAt: string;
1062
+ createdBy?: string | null;
1063
+ updatedBy?: string | null;
1046
1064
  thumbnailHash: string;
1047
1065
  attrib: Record<string, string | number>;
1048
1066
  hasReviewables?: boolean;
@@ -1166,6 +1184,10 @@ declare interface DetailsSectionProps {
1166
1184
  form: Record<string, any>;
1167
1185
  mixedFields?: string[];
1168
1186
  isLoading: boolean;
1187
+ users?: {
1188
+ name: string;
1189
+ fullName?: string | null;
1190
+ }[];
1169
1191
  }
1170
1192
 
1171
1193
  /**
@@ -1289,17 +1311,21 @@ declare type EntityListItemModel = {
1289
1311
  /** Position of the item in the list */
1290
1312
  position: number;
1291
1313
  /** Label of the item */
1292
- label?: string;
1314
+ label?: string | null;
1293
1315
  /** Overrides of the listed entity attributes */
1294
- attrib?: object;
1316
+ attrib?: {
1317
+ [key: string]: any;
1318
+ };
1295
1319
  /** Additional data associated with the item */
1296
- data?: Record<string, any>;
1320
+ data?: {
1321
+ [key: string]: any;
1322
+ };
1297
1323
  /** Tags associated with the item */
1298
1324
  tags?: string[];
1299
1325
  /** Path to the folder where the item is located */
1300
1326
  folderPath: string;
1301
- createdBy?: string;
1302
- updatedBy?: string;
1327
+ createdBy?: string | null;
1328
+ updatedBy?: string | null;
1303
1329
  createdAt?: string;
1304
1330
  updatedAt?: string;
1305
1331
  };
@@ -1309,7 +1335,7 @@ declare type EntityListModel = {
1309
1335
  /** Type of the list */
1310
1336
  entityListType: string;
1311
1337
  /** ID of the folder containing the list */
1312
- entityListFolderId?: string;
1338
+ entityListFolderId?: string | null;
1313
1339
  /** Type of the entity that can be included in the list */
1314
1340
  entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
1315
1341
  label: string;
@@ -1318,17 +1344,23 @@ declare type EntityListModel = {
1318
1344
  [key: string]: ListAccessLevel;
1319
1345
  };
1320
1346
  /** List attributes */
1321
- attrib?: object;
1347
+ attrib?: {
1348
+ [key: string]: any;
1349
+ };
1322
1350
  /** Additional data associated with the list */
1323
- data?: Record<string, any>;
1324
- template?: object;
1351
+ data?: {
1352
+ [key: string]: any;
1353
+ };
1354
+ template?: {
1355
+ [key: string]: any;
1356
+ };
1325
1357
  /** List tags */
1326
1358
  tags?: string[];
1327
1359
  items?: EntityListItemModel[];
1328
1360
  /** Name of the user who created the list */
1329
- owner?: string;
1330
- createdBy?: string;
1331
- updatedBy?: string;
1361
+ owner?: string | null;
1362
+ createdBy?: string | null;
1363
+ updatedBy?: string | null;
1332
1364
  createdAt?: string;
1333
1365
  updatedAt?: string;
1334
1366
  /** Whether the list is active or not */
@@ -1509,19 +1541,21 @@ export declare interface EnumEditorPt {
1509
1541
  declare type EnumItem = {
1510
1542
  value: string | number | number | boolean;
1511
1543
  label: string;
1512
- description?: string;
1513
- fulltext?: string[];
1514
- group?: string;
1544
+ description?: string | null;
1545
+ fulltext?: string[] | null;
1546
+ group?: string | null;
1515
1547
  /** Icon name (material symbol) or IconModel object */
1516
- icon?: string | IconModel;
1517
- color?: string;
1518
- shortName?: string;
1548
+ icon?: string | IconModel | null;
1549
+ color?: string | null;
1550
+ shortName?: string | null;
1519
1551
  /** Enum item is visible, but not selectable */
1520
1552
  disabled?: boolean;
1521
1553
  /** Message to show when the option is disabled */
1522
- disabledMessage?: string;
1523
- /** Enum item is not offered for selection, but resolves when already used */
1554
+ disabledMessage?: string | null;
1555
+ /** Enum item is not visible in the dropdown */
1524
1556
  hidden?: boolean;
1557
+ /** Extra badge labels to display next to the item */
1558
+ badges?: string[] | null;
1525
1559
  };
1526
1560
 
1527
1561
  declare const EnumItemBody: IStyledComponentBase<"web", FastOmit<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick< DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
@@ -1627,9 +1661,58 @@ export declare const FileThumbnail: FC<FileThumbnailProps>;
1627
1661
  export declare interface FileThumbnailProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onError' | 'onLoad'> {
1628
1662
  src: string;
1629
1663
  mimetype?: string;
1664
+ /** hover-scrub filmstrip url (see getFileFilmstripUrl) */
1665
+ filmstripSrc?: string | null;
1630
1666
  imgProps?: Omit<ImgHTMLAttributes<HTMLImageElement>, 'src' | 'onError' | 'onLoad'>;
1631
1667
  }
1632
1668
 
1669
+ /**
1670
+ * Hover-scrub preview of a video thumbnail.
1671
+ *
1672
+ * Render it as the last child of a positioned thumbnail element. While the cursor is over
1673
+ * that element, the overlay shows the filmstrip frame matching the cursor position,
1674
+ * so moving the cursor left to right "plays" the video.
1675
+ */
1676
+ export declare const Filmstrip: FC<FilmstripProps>;
1677
+
1678
+ export declare const FILMSTRIP_ACTIVE_ATTRIBUTE = "data-filmstrip-active";
1679
+
1680
+ export declare const FILMSTRIP_FILE_ATTRIBUTE = "data-filmstrip-file-id";
1681
+
1682
+ export declare const FILMSTRIP_POSITION_ATTRIBUTE = "data-filmstrip-position";
1683
+
1684
+ export declare interface FilmstripData {
1685
+ fileId: string;
1686
+ url: string;
1687
+ frames: number;
1688
+ columns: number;
1689
+ frameWidth: number;
1690
+ frameHeight: number;
1691
+ }
1692
+
1693
+ /** ARC EntityCard with a hover-scrub filmstrip */
1694
+ export declare const FilmstripEntityCard: ForwardRefExoticComponent<FilmstripEntityCardProps & RefAttributes<HTMLDivElement>>;
1695
+
1696
+ export declare interface FilmstripEntityCardProps extends EntityCardProps {
1697
+ /** hover-scrub filmstrip url (see getEntityFilmstripUrl) */
1698
+ filmstripUrl?: string | null;
1699
+ }
1700
+
1701
+ export declare interface FilmstripProps {
1702
+ /** Filmstrip URL (see getEntityFilmstripUrl). Nothing happens when empty. */
1703
+ src?: string | null;
1704
+ /** Should match object-fit of the static thumbnail underneath */
1705
+ fit?: 'cover' | 'contain';
1706
+ disabled?: boolean;
1707
+ className?: string;
1708
+ style?: CSSProperties;
1709
+ }
1710
+
1711
+ export declare interface FilmstripTarget {
1712
+ position: number;
1713
+ fileId: string;
1714
+ }
1715
+
1633
1716
  export declare const FILTER_TYPES_BY_SCOPE: Record<ScopeType_2, FilterFieldType[]>;
1634
1717
 
1635
1718
  declare type FilterConfig = {
@@ -1749,19 +1832,19 @@ declare interface FolderProduct {
1749
1832
 
1750
1833
  declare type FolderSuggestionItem = {
1751
1834
  /** The date and time when the suggested entity was created */
1752
- createdAt?: string;
1835
+ createdAt?: string | null;
1753
1836
  /** The relevance score of the suggestion */
1754
- relevance?: number;
1837
+ relevance?: number | null;
1755
1838
  id: string;
1756
1839
  folderType: string;
1757
1840
  name: string;
1758
- label?: string;
1759
- thumbnailId?: string;
1841
+ label?: string | null;
1842
+ thumbnailId?: string | null;
1760
1843
  };
1761
1844
 
1762
1845
  declare type FolderType = {
1763
1846
  name: string;
1764
- original_name?: string;
1847
+ original_name?: string | null;
1765
1848
  shortName?: string;
1766
1849
  color?: string;
1767
1850
  icon?: string;
@@ -1769,7 +1852,7 @@ declare type FolderType = {
1769
1852
 
1770
1853
  declare type FolderType_2 = {
1771
1854
  name: string;
1772
- original_name?: string;
1855
+ original_name?: string | null;
1773
1856
  shortName?: string;
1774
1857
  color?: string;
1775
1858
  icon?: string;
@@ -1783,29 +1866,40 @@ declare interface FormData_2 {
1783
1866
  export { FormData_2 as FormData }
1784
1867
 
1785
1868
  declare type FormFieldPatch = {
1786
- value?: string | number | number | boolean | string[] | number[] | number[] | null;
1869
+ value?: string | number | number | boolean | string[] | number[] | number[] | FormFileData | null;
1787
1870
  label?: string;
1788
1871
  placeholder?: any;
1789
1872
  options?: FormOptionItem[];
1790
- readOnly?: boolean;
1791
- disabled?: boolean;
1873
+ enum_resolver?: string;
1874
+ enum_resolver_params?: {
1875
+ [key: string]: any;
1876
+ };
1877
+ read_only?: boolean;
1792
1878
  hidden?: boolean;
1879
+ disabled?: boolean;
1793
1880
  highlight?: 'info' | 'warning' | 'error';
1794
1881
  };
1795
1882
 
1796
1883
  declare type FormFieldRule = {
1797
- when: QueryFilter;
1884
+ /** Filter source events */
1885
+ when: QueryFilter_2;
1798
1886
  set: FormFieldPatch;
1799
1887
  };
1800
1888
 
1801
- declare interface FormFileData {
1889
+ declare type FormFileData = {
1890
+ filename: string;
1891
+ payload: string;
1892
+ download?: boolean;
1893
+ };
1894
+
1895
+ declare interface FormFileData_2 {
1802
1896
  payload: string;
1803
1897
  filename: string;
1804
1898
  download?: boolean;
1805
1899
  }
1806
1900
 
1807
1901
  declare type FormOptionItem = {
1808
- value: string | number | boolean;
1902
+ value: string | number | number | boolean;
1809
1903
  label?: string;
1810
1904
  description?: string;
1811
1905
  group?: string;
@@ -1847,16 +1941,22 @@ declare type GenericViewModel = {
1847
1941
  working: boolean;
1848
1942
  position: number;
1849
1943
  accessLevel: number;
1850
- settings: object;
1851
- access: object;
1852
1944
  viewType: string;
1945
+ settings: {
1946
+ [key: string]: any;
1947
+ };
1948
+ access: {
1949
+ [key: string]: any;
1950
+ };
1853
1951
  };
1854
1952
 
1855
1953
  declare type GenericViewPatchModel = {
1856
- label?: string;
1857
- owner?: string;
1858
- settings?: object;
1859
- viewType: string;
1954
+ label?: string | null;
1955
+ owner?: string | null;
1956
+ viewType?: string | null;
1957
+ settings?: {
1958
+ [key: string]: any;
1959
+ } | null;
1860
1960
  };
1861
1961
 
1862
1962
  declare type GenericViewPostModel = {
@@ -1866,29 +1966,25 @@ declare type GenericViewPostModel = {
1866
1966
  label: string;
1867
1967
  /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
1868
1968
  working?: boolean;
1869
- settings: object;
1870
- viewType: string;
1969
+ viewType?: string | null;
1970
+ settings: {
1971
+ [key: string]: any;
1972
+ };
1871
1973
  };
1872
1974
 
1873
1975
  declare type GetBaseViewApiArg = {
1874
1976
  viewType: string;
1875
- projectName?: string;
1977
+ projectName?: string | null;
1876
1978
  };
1877
1979
 
1878
- declare type GetBaseViewApiResponse =
1879
- /** status 200 Successful Response */
1880
- OverviewViewModel | TaskProgressViewModel | ListsViewModel | ReviewsViewModel | VersionsViewModel | GenericViewModel;
1881
-
1882
1980
  export declare const getButtonAction: (contribution: AnyContribution) => ButtonAction | undefined;
1883
1981
 
1884
1982
  declare type GetDefaultViewApiArg = {
1885
1983
  viewType: string;
1886
- projectName?: string;
1984
+ projectName?: string | null;
1887
1985
  };
1888
1986
 
1889
- declare type GetDefaultViewApiResponse =
1890
- /** status 200 Successful Response */
1891
- OverviewViewModel | TaskProgressViewModel | ListsViewModel | ReviewsViewModel | VersionsViewModel | GenericViewModel;
1987
+ declare type GetDefaultViewApiResponse = GenericViewModel;
1892
1988
 
1893
1989
  declare type GetDetailsPanelTaskQuery = {
1894
1990
  project: {
@@ -1905,6 +2001,8 @@ declare type GetDetailsPanelTaskQuery = {
1905
2001
  assignees: Array<string>;
1906
2002
  updatedAt: unknown;
1907
2003
  createdAt: unknown;
2004
+ createdBy: string | null;
2005
+ updatedBy: string | null;
1908
2006
  thumbnailHash: string;
1909
2007
  folderId: string;
1910
2008
  thumbnailId: string | null;
@@ -1946,6 +2044,15 @@ declare type GetDetailsPanelTaskQuery = {
1946
2044
  };
1947
2045
  };
1948
2046
 
2047
+ /**
2048
+ * The filmstrip frame shown under the cursor, for opening the viewer at the same reviewable
2049
+ * and frame the user was looking at.
2050
+ * Returns undefined when the event did not come from a scrubbed thumbnail.
2051
+ */
2052
+ export declare const getFilmstripTarget: (event?: {
2053
+ target: EventTarget | null;
2054
+ }) => FilmstripTarget | undefined;
2055
+
1949
2056
  export declare const getGroupedReviewables: (reviewables: ReviewableResponse[], hasTranscoder?: boolean | undefined) => {
1950
2057
  playable: ReviewableResponse[];
1951
2058
  incompatible: ReviewableResponse[];
@@ -1991,22 +2098,14 @@ export declare const getUiTypeLabel: (type: AttributeData_2["type"] | undefined,
1991
2098
  declare type GetViewApiArg = {
1992
2099
  viewType: string;
1993
2100
  viewId: string;
1994
- projectName?: string;
2101
+ projectName?: string | null;
1995
2102
  };
1996
2103
 
1997
- declare type GetViewApiResponse =
1998
- /** status 200 Successful Response */
1999
- OverviewViewModel | TaskProgressViewModel | ListsViewModel | ReviewsViewModel | VersionsViewModel | GenericViewModel;
2000
-
2001
2104
  declare type GetWorkingViewApiArg = {
2002
2105
  viewType: string;
2003
- projectName?: string;
2106
+ projectName?: string | null;
2004
2107
  };
2005
2108
 
2006
- declare type GetWorkingViewApiResponse =
2007
- /** status 200 Successful Response */
2008
- OverviewViewModel | TaskProgressViewModel | ListsViewModel | ReviewsViewModel | VersionsViewModel | GenericViewModel;
2009
-
2010
2109
  declare interface GridConfig {
2011
2110
  columns: number;
2012
2111
  rows: number;
@@ -2102,21 +2201,21 @@ declare type IconInputPt = Partial<React.ComponentProps<typeof Styled.IconSelect
2102
2201
  declare type IconModel = {
2103
2202
  type?: 'material-symbols' | 'url';
2104
2203
  /** The name of the icon (for type material-symbols) */
2105
- name?: string;
2204
+ name?: string | null;
2106
2205
  /** The color of the icon (for type material-symbols) */
2107
- color?: string;
2206
+ color?: string | null;
2108
2207
  /** The URL of the icon (for type url) */
2109
- url?: string;
2208
+ url?: string | null;
2110
2209
  };
2111
2210
 
2112
2211
  declare type IconModel_2 = {
2113
2212
  type?: 'material-symbols' | 'url';
2114
2213
  /** The name of the icon (for type material-symbols) */
2115
- name?: string;
2214
+ name?: string | null;
2116
2215
  /** The color of the icon (for type material-symbols) */
2117
- color?: string;
2216
+ color?: string | null;
2118
2217
  /** The URL of the icon (for type url) */
2119
- url?: string;
2218
+ url?: string | null;
2120
2219
  };
2121
2220
 
2122
2221
  declare const IconSelect: IStyledComponentBase<"web", FastOmit<Omit< IconSelectProps & RefAttributes<DropdownRef>, "ref"> & {
@@ -2234,7 +2333,7 @@ declare type LinkType = {
2234
2333
  link_type: string;
2235
2334
  input_type: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
2236
2335
  output_type: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
2237
- color?: string;
2336
+ color?: string | null;
2238
2337
  style?: 'solid' | 'dashed';
2239
2338
  };
2240
2339
 
@@ -2248,7 +2347,9 @@ declare type LinkTypeModel_2 = {
2248
2347
  /** Output entity type */
2249
2348
  outputType: string;
2250
2349
  /** Additional link type data */
2251
- data?: object;
2350
+ data?: {
2351
+ [key: string]: any;
2352
+ };
2252
2353
  };
2253
2354
 
2254
2355
  declare type ListAccessLevel = 0 | 10 | 20 | 30;
@@ -2275,55 +2376,9 @@ declare interface ListMetaDataProps {
2275
2376
  isLoading?: boolean;
2276
2377
  }
2277
2378
 
2278
- declare type ListsSettings = {
2279
- rowHeight?: number;
2280
- sortBy?: string | string[];
2281
- sortDesc?: boolean;
2282
- filter?: QueryFilter_5;
2283
- columns?: ColumnItemModel[];
2284
- };
2285
-
2286
- declare type ListsViewModel = {
2287
- /** Unique identifier for the view within the given scope. */
2288
- id?: string;
2289
- /** Human-readable name of the view. */
2290
- label: string;
2291
- /** Determines whether the view is only available for the given project or for all projects (studio). */
2292
- scope: 'project' | 'studio';
2293
- /** Name of the user who created the view. Owners have full control over the view, */
2294
- owner: string;
2295
- /** Visibility of the view. Public views are visible to all users, private views are only visible to the owner. */
2296
- visibility: 'public' | 'private';
2297
- /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
2298
- working: boolean;
2299
- position: number;
2300
- accessLevel: number;
2301
- settings: ListsSettings;
2302
- access: object;
2303
- viewType?: 'lists';
2304
- };
2305
-
2306
- declare type ListsViewPatchModel = {
2307
- label?: string;
2308
- owner?: string;
2309
- settings?: ListsSettings;
2310
- viewType?: 'lists';
2311
- };
2312
-
2313
- declare type ListsViewPostModel = {
2314
- /** Unique identifier for the view within the given scope. */
2315
- id?: string;
2316
- /** Human-readable name of the view. */
2317
- label: string;
2318
- /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
2319
- working?: boolean;
2320
- settings: ListsSettings;
2321
- viewType?: 'lists';
2322
- };
2323
-
2324
2379
  declare type ListViewsApiArg = {
2325
2380
  viewType: string;
2326
- projectName?: string;
2381
+ projectName?: string | null;
2327
2382
  };
2328
2383
 
2329
2384
  /**
@@ -2332,6 +2387,9 @@ declare type ListViewsApiArg = {
2332
2387
  */
2333
2388
  declare type Loader<T> = () => Promise<{ default: T }>
2334
2389
 
2390
+ /** Loads a filmstrip, deduplicating concurrent and repeated requests until it expires */
2391
+ export declare const loadFilmstrip: (src: string) => Promise<FilmstripData | null>;
2392
+
2335
2393
  export declare const LoginPage: ({ onLogin, loading, isFirstTime }: LoginPageProps) => JSX_2.Element | null;
2336
2394
 
2337
2395
  export declare interface LoginPageProps {
@@ -2724,66 +2782,16 @@ declare type OperationModel = {
2724
2782
  id?: string;
2725
2783
  type: 'create' | 'update' | 'delete';
2726
2784
  entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
2727
- entityId?: string;
2728
- data?: Record<string, any>;
2785
+ entityId?: string | null;
2786
+ data?: {
2787
+ [key: string]: any;
2788
+ } | null;
2729
2789
  force?: boolean;
2730
- asUser?: string;
2731
- };
2732
-
2733
- declare type OverviewSettings = {
2734
- showHierarchy?: boolean;
2735
- rowHeight?: number;
2736
- groupBy?: string;
2737
- groupSortByDesc?: boolean;
2738
- showEmptyGroups?: boolean;
2739
- sortBy?: string | string[];
2740
- sortDesc?: boolean;
2741
- filter?: QueryFilter_5;
2742
- folderFilter?: QueryFilter_5;
2743
- sliceType?: string;
2744
- columns?: ColumnItemModel[];
2790
+ asUser?: string | null;
2745
2791
  };
2746
2792
 
2747
2793
  export declare type OverviewSettingsChange = (setting: 'columns' | 'group-by', value: any) => void;
2748
2794
 
2749
- declare type OverviewViewModel = {
2750
- /** Unique identifier for the view within the given scope. */
2751
- id?: string;
2752
- /** Human-readable name of the view. */
2753
- label: string;
2754
- /** Determines whether the view is only available for the given project or for all projects (studio). */
2755
- scope: 'project' | 'studio';
2756
- /** Name of the user who created the view. Owners have full control over the view, */
2757
- owner: string;
2758
- /** Visibility of the view. Public views are visible to all users, private views are only visible to the owner. */
2759
- visibility: 'public' | 'private';
2760
- /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
2761
- working: boolean;
2762
- position: number;
2763
- accessLevel: number;
2764
- settings: OverviewSettings;
2765
- access: object;
2766
- viewType?: 'overview';
2767
- };
2768
-
2769
- declare type OverviewViewPatchModel = {
2770
- label?: string;
2771
- owner?: string;
2772
- settings?: OverviewSettings;
2773
- viewType?: 'overview';
2774
- };
2775
-
2776
- declare type OverviewViewPostModel = {
2777
- /** Unique identifier for the view within the given scope. */
2778
- id?: string;
2779
- /** Human-readable name of the view. */
2780
- label: string;
2781
- /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
2782
- working?: boolean;
2783
- settings: OverviewSettings;
2784
- viewType?: 'overview';
2785
- };
2786
-
2787
2795
  /** Description of a page contribution (`project.page`, `studio.page`). */
2788
2796
  declare interface PageMeta {
2789
2797
  /**
@@ -2877,6 +2885,12 @@ export declare type PathSegment = {
2877
2885
  id: string;
2878
2886
  };
2879
2887
 
2888
+ /**
2889
+ * Returns a loaded filmstrip that is still valid: data, `null` (not available)
2890
+ * or `undefined` (not loaded, expired or evicted - call loadFilmstrip)
2891
+ */
2892
+ export declare const peekFilmstrip: (src: string) => FilmstripData | null | undefined;
2893
+
2880
2894
  /** What `EntityPicker` picks. */
2881
2895
  declare type PickableEntityType = 'folder' | 'task' | 'product' | 'version' | 'representation' | 'workfile'
2882
2896
 
@@ -2952,13 +2966,13 @@ declare type ProductBaseTypes = {
2952
2966
 
2953
2967
  declare type ProductSuggestionItem = {
2954
2968
  /** The date and time when the suggested entity was created */
2955
- createdAt?: string;
2969
+ createdAt?: string | null;
2956
2970
  /** The relevance score of the suggestion */
2957
- relevance?: number;
2971
+ relevance?: number | null;
2958
2972
  id: string;
2959
2973
  name: string;
2960
2974
  productType: string;
2961
- parent?: FolderSuggestionItem;
2975
+ parent?: FolderSuggestionItem | null;
2962
2976
  };
2963
2977
 
2964
2978
  declare type ProductType = {
@@ -2970,55 +2984,9 @@ declare type ProductType = {
2970
2984
 
2971
2985
  declare type ProductTypeListItem = {
2972
2986
  name: string;
2973
- baseType?: string;
2974
- color?: string;
2975
- icon?: string;
2976
- };
2977
-
2978
- declare type ProjectAttribModel = {
2979
- priority?: 'urgent' | 'high' | 'normal' | 'low';
2980
- /** Frame rate */
2981
- fps?: number;
2982
- /** Horizontal resolution */
2983
- resolutionWidth?: number;
2984
- /** Vertical resolution */
2985
- resolutionHeight?: number;
2986
- pixelAspect?: number;
2987
- clipIn?: number;
2988
- clipOut?: number;
2989
- frameStart?: number;
2990
- frameEnd?: number;
2991
- handleStart?: number;
2992
- handleEnd?: number;
2993
- /** Date and time when the project or task or asset was started */
2994
- startDate?: string;
2995
- /** Deadline date and time */
2996
- endDate?: string;
2997
- /** Textual description of the entity */
2998
- description?: string;
2999
- };
3000
-
3001
- declare type ProjectAttribModel2 = {
3002
- priority?: 'urgent' | 'high' | 'normal' | 'low';
3003
- /** Frame rate */
3004
- fps?: number;
3005
- /** Horizontal resolution */
3006
- resolutionWidth?: number;
3007
- /** Vertical resolution */
3008
- resolutionHeight?: number;
3009
- pixelAspect?: number;
3010
- clipIn?: number;
3011
- clipOut?: number;
3012
- frameStart?: number;
3013
- frameEnd?: number;
3014
- handleStart?: number;
3015
- handleEnd?: number;
3016
- /** Date and time when the project or task or asset was started */
3017
- startDate?: string;
3018
- /** Deadline date and time */
3019
- endDate?: string;
3020
- /** Textual description of the entity */
3021
- description?: string;
2987
+ baseType?: string | null;
2988
+ color?: string | null;
2989
+ icon?: string | null;
3022
2990
  };
3023
2991
 
3024
2992
  declare interface ProjectContextValue extends ProjectModelWithProducts {
@@ -3090,22 +3058,30 @@ declare interface ProjectListMenuItemContext {
3090
3058
  }
3091
3059
 
3092
3060
  declare type ProjectModel = {
3093
- /** Name is an unique id of the {entity_name} */
3061
+ /** Unique name of the project */
3094
3062
  name: string;
3095
3063
  code: string;
3096
- label?: string;
3064
+ label?: string | null;
3097
3065
  library?: boolean;
3098
3066
  folderTypes?: FolderType_2[];
3099
3067
  taskTypes?: TaskType_2[];
3100
3068
  linkTypes?: LinkTypeModel_2[];
3101
3069
  statuses?: Status_2[];
3102
3070
  tags?: Tag_2[];
3103
- config?: object;
3104
- skeleton?: boolean;
3105
- attrib?: ProjectAttribModel2;
3106
- data?: object;
3107
- /** Whether the project is active */
3071
+ config?: {
3072
+ [key: string]: any;
3073
+ };
3074
+ skeleton?: boolean | null;
3075
+ /** Attribute values of the entity */
3076
+ attrib?: {
3077
+ [key: string]: any;
3078
+ };
3079
+ data?: {
3080
+ [key: string]: any;
3081
+ };
3082
+ /** Whether the entity is active */
3108
3083
  active?: boolean;
3084
+ /** List of attributes explicitly set on the entity itself (not inherited) */
3109
3085
  ownAttrib?: string[];
3110
3086
  /** Time of creation */
3111
3087
  createdAt?: string;
@@ -3130,6 +3106,15 @@ declare interface ProjectPageLayoutProps {
3130
3106
  children: ReactNode
3131
3107
  }
3132
3108
 
3109
+ /** Description of a `project.page` contribution: a page, and what the host adds around it. */
3110
+ declare interface ProjectPageMeta extends PageMeta {
3111
+ /**
3112
+ * Shows AYON's details panel next to the page, for the page to open with `openDetails`. The page
3113
+ * is in a splitter while the panel is there; it only shows when the page opens it.
3114
+ */
3115
+ detailsPanel?: boolean
3116
+ }
3117
+
3133
3118
  export declare const ProjectPageRemote: FC<ProjectPageRemoteProps>;
3134
3119
 
3135
3120
  export declare interface ProjectPageRemoteProps extends RemotePageWrapperProps {
@@ -3230,18 +3215,18 @@ declare type QueryCondition = {
3230
3215
  /** Path to the key separated by slashes */
3231
3216
  key: string;
3232
3217
  /** Value to compare against */
3233
- value?: string | number | number | boolean | string[] | number[] | number[];
3234
- /** Comparison operator */
3235
- operator?: 'eq' | 'like' | 'notlike' | 'lt' | 'gt' | 'lte' | 'gte' | 'ne' | 'isnull' | 'notnull' | 'in' | 'notin' | 'includes' | 'excludes' | 'includesall' | 'excludesall' | 'includesany' | 'excludesany';
3218
+ value?: string | number | number | boolean | string[] | number[] | number[] | null;
3219
+ /** Comparison operator. like and notlike perform case-insensitive substring matching. One surrounding pair of % is treated as a substring wrapper; %, _ and backslashes within it are literal. */
3220
+ operator?: 'eq' | 'like' | 'notlike' | 're' | 'lt' | 'gt' | 'lte' | 'gte' | 'ne' | 'isnull' | 'notnull' | 'in' | 'notin' | 'includes' | 'excludes' | 'includesall' | 'excludesall' | 'includesany' | 'excludesany';
3236
3221
  };
3237
3222
 
3238
- declare type QueryCondition_5 = {
3223
+ declare type QueryCondition_2 = {
3239
3224
  /** Path to the key separated by slashes */
3240
3225
  key: string;
3241
3226
  /** Value to compare against */
3242
- value?: string | number | number | boolean | string[] | number[] | number[];
3243
- /** Comparison operator */
3244
- operator?: 'eq' | 'like' | 'notlike' | 'lt' | 'gt' | 'lte' | 'gte' | 'ne' | 'isnull' | 'notnull' | 'in' | 'notin' | 'includes' | 'excludes' | 'includesall' | 'excludesall' | 'includesany' | 'excludesany';
3227
+ value?: string | number | number | boolean | string[] | number[] | number[] | null;
3228
+ /** Comparison operator. like and notlike perform case-insensitive substring matching. One surrounding pair of % is treated as a substring wrapper; %, _ and backslashes within it are literal. */
3229
+ operator?: 'eq' | 'like' | 'notlike' | 're' | 'lt' | 'gt' | 'lte' | 'gte' | 'ne' | 'isnull' | 'notnull' | 'in' | 'notin' | 'includes' | 'excludes' | 'includesall' | 'excludesall' | 'includesany' | 'excludesany';
3245
3230
  };
3246
3231
 
3247
3232
  declare type QueryFilter = {
@@ -3251,9 +3236,9 @@ declare type QueryFilter = {
3251
3236
  operator?: 'and' | 'or';
3252
3237
  };
3253
3238
 
3254
- declare type QueryFilter_5 = {
3239
+ declare type QueryFilter_2 = {
3255
3240
  /** List of conditions to be evaluated */
3256
- conditions?: (QueryCondition_5 | QueryFilter_5)[];
3241
+ conditions?: (QueryCondition_2 | QueryFilter_2)[];
3257
3242
  /** Operator to use when joining conditions */
3258
3243
  operator?: 'and' | 'or';
3259
3244
  };
@@ -3360,7 +3345,7 @@ declare type RequiredAddonVersionProps = BaseProps & ({
3360
3345
 
3361
3346
  declare type ReviewableAuthor = {
3362
3347
  name: string;
3363
- fullName?: string;
3348
+ fullName?: string | null;
3364
3349
  };
3365
3350
 
3366
3351
  export declare const ReviewableCard: ForwardRefExoticComponent<ReviewableCardProps & RefAttributes<HTMLDivElement>>;
@@ -3386,20 +3371,22 @@ declare type ReviewableModel = {
3386
3371
  fileId: string;
3387
3372
  activityId: string;
3388
3373
  filename: string;
3389
- label?: string;
3374
+ label?: string | null;
3390
3375
  mimetype: string;
3391
3376
  availability?: 'unknown' | 'conversionRequired' | 'conversionRecommended' | 'ready';
3392
- mediaInfo?: object;
3393
- createdFrom?: string;
3377
+ mediaInfo?: {
3378
+ [key: string]: any;
3379
+ } | null;
3380
+ createdFrom?: string | null;
3394
3381
  /** Information about the processing status */
3395
- processing?: ReviewableProcessingStatus;
3382
+ processing?: ReviewableProcessingStatus | null;
3396
3383
  createdAt?: string;
3397
3384
  updatedAt?: string;
3398
3385
  author: ReviewableAuthor;
3399
3386
  };
3400
3387
 
3401
3388
  declare type ReviewableProcessingStatus = {
3402
- eventId?: string;
3389
+ eventId?: string | null;
3403
3390
  status: string;
3404
3391
  description: string;
3405
3392
  };
@@ -3492,54 +3479,6 @@ export declare interface ReviewableUploadProps extends React.HTMLProps<HTMLDivEl
3492
3479
  };
3493
3480
  }
3494
3481
 
3495
- declare type ReviewsSettings = {
3496
- rowHeight?: number;
3497
- sortBy?: string | string[];
3498
- sortDesc?: boolean;
3499
- filter?: QueryFilter_5;
3500
- columns?: ColumnItemModel[];
3501
- gridHeight?: number;
3502
- displayStyle?: 'cards' | 'table' | 'playlist';
3503
- };
3504
-
3505
- declare type ReviewsViewModel = {
3506
- /** Unique identifier for the view within the given scope. */
3507
- id?: string;
3508
- /** Human-readable name of the view. */
3509
- label: string;
3510
- /** Determines whether the view is only available for the given project or for all projects (studio). */
3511
- scope: 'project' | 'studio';
3512
- /** Name of the user who created the view. Owners have full control over the view, */
3513
- owner: string;
3514
- /** Visibility of the view. Public views are visible to all users, private views are only visible to the owner. */
3515
- visibility: 'public' | 'private';
3516
- /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
3517
- working: boolean;
3518
- position: number;
3519
- accessLevel: number;
3520
- settings: ReviewsSettings;
3521
- access: object;
3522
- viewType?: 'reviews';
3523
- };
3524
-
3525
- declare type ReviewsViewPatchModel = {
3526
- label?: string;
3527
- owner?: string;
3528
- settings?: ReviewsSettings;
3529
- viewType?: 'reviews';
3530
- };
3531
-
3532
- declare type ReviewsViewPostModel = {
3533
- /** Unique identifier for the view within the given scope. */
3534
- id?: string;
3535
- /** Human-readable name of the view. */
3536
- label: string;
3537
- /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
3538
- working?: boolean;
3539
- settings: ReviewsSettings;
3540
- viewType?: 'reviews';
3541
- };
3542
-
3543
3482
  declare type Root = {
3544
3483
  name: string;
3545
3484
  windows?: string;
@@ -3640,7 +3579,7 @@ declare type SerializedYouTubeNode = Spread<{
3640
3579
 
3641
3580
  declare type SetDefaultViewApiArg = {
3642
3581
  viewType: string;
3643
- projectName?: string;
3582
+ projectName?: string | null;
3644
3583
  setDefaultViewRequestModel: SetDefaultViewRequestModel;
3645
3584
  };
3646
3585
 
@@ -3708,7 +3647,7 @@ declare type ShareOption = {
3708
3647
  value: string;
3709
3648
  name: string;
3710
3649
  label: string;
3711
- attribute?: string;
3650
+ attribute?: string | null;
3712
3651
  };
3713
3652
 
3714
3653
  export declare const ShareOptionIcon: FC<ShareOptionIconProps>;
@@ -3741,6 +3680,9 @@ declare type ShortcutKeyEvent = Pick<KeyboardEvent, 'key' | 'code' | 'ctrlKey' |
3741
3680
  */
3742
3681
  declare type ShortcutTable = ProjectTablePage | 'slicer' | 'projects' | 'listsPanel' | 'versionsPanel'
3743
3682
 
3683
+ /** A contribution with this `selection` shows for `count` selected users. */
3684
+ export declare const showsForSelection: (selection: UserSelection | undefined, count: number) => boolean;
3685
+
3744
3686
  declare interface SidebarConfig {
3745
3687
  width?: string;
3746
3688
  minWidth?: string;
@@ -3784,7 +3726,7 @@ declare type SimpleFormField = {
3784
3726
  name: string;
3785
3727
  label?: string;
3786
3728
  placeholder?: any;
3787
- value?: string | number | number | boolean | string[] | number[] | number[];
3729
+ value?: string | number | number | boolean | string[] | number[] | number[] | FormFileData;
3788
3730
  regex?: string;
3789
3731
  multiline?: boolean;
3790
3732
  syntax?: string;
@@ -3793,7 +3735,7 @@ declare type SimpleFormField = {
3793
3735
  min?: number | number;
3794
3736
  max?: number | number;
3795
3737
  valid_extensions?: string[];
3796
- readOnly?: boolean;
3738
+ read_only?: boolean;
3797
3739
  disabled?: boolean;
3798
3740
  hidden?: boolean;
3799
3741
  enum_resolver?: string;
@@ -3814,7 +3756,7 @@ export declare interface SimpleFormProps {
3814
3756
  style?: default_2.CSSProperties;
3815
3757
  }
3816
3758
 
3817
- export declare type SimpleFormValue = string | number | boolean | string[] | number[] | FormFileData | null | undefined;
3759
+ export declare type SimpleFormValue = string | number | boolean | string[] | number[] | FormFileData_2 | null | undefined;
3818
3760
 
3819
3761
  export declare type SimpleFormValueDict = Record<string, SimpleFormValue>;
3820
3762
 
@@ -3895,7 +3837,7 @@ declare interface SlotMap {
3895
3837
  */
3896
3838
  'project.page': {
3897
3839
  version: 1
3898
- meta: PageMeta
3840
+ meta: ProjectPageMeta
3899
3841
  context: ProjectScope & SlicerScope & ProjectFoldersScope & ViewsScope
3900
3842
  pieces: { component: Loader<ComponentType<SlotProps<'project.page'>>> }
3901
3843
  }
@@ -4025,6 +3967,27 @@ declare interface SlotMap {
4025
3967
  context: TableShortcutContext
4026
3968
  pieces: TableShortcutPieces
4027
3969
  }
3970
+ /**
3971
+ * A section in the user details panel (Settings → Users), below AYON's own forms, for the
3972
+ * selected users. The section shows from the description, titled like AYON's; `component`
3973
+ * loads when it is first shown. Saving is the section's own: AYON's Save button doesn't see it.
3974
+ */
3975
+ 'userDetails.section': {
3976
+ version: 1
3977
+ meta: UserDetailsSectionMeta
3978
+ context: UserDetailsContext
3979
+ pieces: { component: Loader<ComponentType<SlotProps<'userDetails.section'>>> }
3980
+ }
3981
+ /**
3982
+ * An item in the user details panel's "more" menu (Settings → Users), for the selected users.
3983
+ * It shows from the description; `run` loads when the menu opens and is called on click.
3984
+ */
3985
+ 'userDetails.menuItem': {
3986
+ version: 1
3987
+ meta: UserDetailsMenuItemMeta
3988
+ context: UserDetailsContext
3989
+ pieces: { run: Loader<RunPiece<'userDetails.menuItem'>> }
3990
+ }
4028
3991
  /**
4029
3992
  * Code with no UI that runs while AYON is open, whatever the page: keeping a state, listening to
4030
3993
  * websocket events, registering a store listener. `component` loads at startup and is mounted
@@ -4102,7 +4065,7 @@ export declare const splitFiltersByScope: (combinedFilter: Record<string, any> |
4102
4065
 
4103
4066
  export declare const SplitterStyles: NamedExoticComponent< ExecutionProps & object>;
4104
4067
 
4105
- export declare const StackedThumbnails: ({ thumbnails, isLoading, className, style, ...props }: StackedThumbnailsProps) => JSX_2.Element | null;
4068
+ export declare const StackedThumbnails: ({ thumbnails, isLoading, className, style, filmstrip, ...props }: StackedThumbnailsProps) => JSX_2.Element | null;
4106
4069
 
4107
4070
  export declare interface StackedThumbnailsProps extends Omit<ThumbnailProps, 'entityType' | 'entityId' | 'projectName' | 'thumbnailHash'> {
4108
4071
  thumbnails?: Thumbnail[];
@@ -4118,24 +4081,24 @@ declare type StagingDirectory = {
4118
4081
 
4119
4082
  declare type Status = {
4120
4083
  name: string;
4121
- original_name?: string;
4084
+ original_name?: string | null;
4122
4085
  shortName?: string;
4123
4086
  state?: 'not_started' | 'in_progress' | 'done' | 'blocked';
4124
4087
  icon?: string;
4125
4088
  color?: string;
4126
4089
  /** Limit the status to specific entity types. */
4127
- scope?: string[];
4090
+ scope?: string[] | null;
4128
4091
  };
4129
4092
 
4130
4093
  declare type Status_2 = {
4131
4094
  name: string;
4132
- original_name?: string;
4095
+ original_name?: string | null;
4133
4096
  shortName?: string;
4134
4097
  state?: 'not_started' | 'in_progress' | 'done' | 'blocked';
4135
4098
  icon?: string;
4136
4099
  color?: string;
4137
4100
  /** Limit the status to specific entity types. */
4138
- scope?: string[];
4101
+ scope?: string[] | null;
4139
4102
  };
4140
4103
 
4141
4104
  declare type Status_3 = {
@@ -4414,76 +4377,32 @@ declare interface TabStateByScope {
4414
4377
 
4415
4378
  declare type Tag = {
4416
4379
  name: string;
4417
- original_name?: string;
4380
+ original_name?: string | null;
4418
4381
  color?: string;
4419
4382
  };
4420
4383
 
4421
4384
  declare type Tag_2 = {
4422
4385
  name: string;
4423
- original_name?: string;
4386
+ original_name?: string | null;
4424
4387
  color?: string;
4425
4388
  };
4426
4389
 
4427
- declare type TaskProgressSettings = {
4428
- filter?: QueryFilter_5;
4429
- sliceType?: string;
4430
- columns?: ColumnItemModel[];
4431
- };
4432
-
4433
- declare type TaskProgressViewModel = {
4434
- /** Unique identifier for the view within the given scope. */
4435
- id?: string;
4436
- /** Human-readable name of the view. */
4437
- label: string;
4438
- /** Determines whether the view is only available for the given project or for all projects (studio). */
4439
- scope: 'project' | 'studio';
4440
- /** Name of the user who created the view. Owners have full control over the view, */
4441
- owner: string;
4442
- /** Visibility of the view. Public views are visible to all users, private views are only visible to the owner. */
4443
- visibility: 'public' | 'private';
4444
- /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
4445
- working: boolean;
4446
- position: number;
4447
- accessLevel: number;
4448
- settings: TaskProgressSettings;
4449
- access: object;
4450
- viewType?: 'taskProgress';
4451
- };
4452
-
4453
- declare type TaskProgressViewPatchModel = {
4454
- label?: string;
4455
- owner?: string;
4456
- settings?: TaskProgressSettings;
4457
- viewType?: 'taskProgress';
4458
- };
4459
-
4460
- declare type TaskProgressViewPostModel = {
4461
- /** Unique identifier for the view within the given scope. */
4462
- id?: string;
4463
- /** Human-readable name of the view. */
4464
- label: string;
4465
- /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
4466
- working?: boolean;
4467
- settings: TaskProgressSettings;
4468
- viewType?: 'taskProgress';
4469
- };
4470
-
4471
4390
  declare type TaskSuggestionItem = {
4472
4391
  /** The date and time when the suggested entity was created */
4473
- createdAt?: string;
4392
+ createdAt?: string | null;
4474
4393
  /** The relevance score of the suggestion */
4475
- relevance?: number;
4394
+ relevance?: number | null;
4476
4395
  id: string;
4477
4396
  taskType: string;
4478
4397
  name: string;
4479
- label?: string;
4480
- thumbnailId?: string;
4481
- parent?: FolderSuggestionItem;
4398
+ label?: string | null;
4399
+ thumbnailId?: string | null;
4400
+ parent?: FolderSuggestionItem | null;
4482
4401
  };
4483
4402
 
4484
4403
  declare type TaskType = {
4485
4404
  name: string;
4486
- original_name?: string;
4405
+ original_name?: string | null;
4487
4406
  shortName?: string;
4488
4407
  color?: string;
4489
4408
  icon?: string;
@@ -4491,7 +4410,7 @@ declare type TaskType = {
4491
4410
 
4492
4411
  declare type TaskType_2 = {
4493
4412
  name: string;
4494
- original_name?: string;
4413
+ original_name?: string | null;
4495
4414
  shortName?: string;
4496
4415
  color?: string;
4497
4416
  icon?: string;
@@ -4509,9 +4428,9 @@ export declare const TEAM_KEY_PREFIX = "team:";
4509
4428
 
4510
4429
  declare type TeamSuggestionItem = {
4511
4430
  /** The date and time when the suggested entity was created */
4512
- createdAt?: string;
4431
+ createdAt?: string | null;
4513
4432
  /** The relevance score of the suggestion */
4514
- relevance?: number;
4433
+ relevance?: number | null;
4515
4434
  name: string;
4516
4435
  };
4517
4436
 
@@ -4534,7 +4453,7 @@ declare type TextInputPt = Partial<React.ComponentProps<typeof Styled.InputText>
4534
4453
 
4535
4454
  declare type ThemeType = 'light' | 'dark';
4536
4455
 
4537
- export declare const Thumbnail: ({ projectName, entityType, entityId, icon, color, thumbnailHash, isLoading, shimmer, className, disabled, src, hoverIcon, showBorder, ...props }: ThumbnailProps) => JSX_2.Element;
4456
+ export declare const Thumbnail: ({ projectName, entityType, entityId, icon, color, thumbnailHash, isLoading, shimmer, className, disabled, src, hoverIcon, showBorder, filmstrip, ...props }: ThumbnailProps) => JSX_2.Element;
4538
4457
 
4539
4458
  export declare interface ThumbnailProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {
4540
4459
  projectName?: string;
@@ -4550,6 +4469,8 @@ export declare interface ThumbnailProps extends Omit<HTMLAttributes<HTMLDivEleme
4550
4469
  src?: string;
4551
4470
  hoverIcon?: string;
4552
4471
  showBorder?: boolean;
4472
+ /** show a hover-scrub filmstrip (the entity should have reviewables) */
4473
+ filmstrip?: boolean;
4553
4474
  }
4554
4475
 
4555
4476
  export declare const ThumbnailSimple: default_2.FC<ThumbnailSimpleProps>;
@@ -4566,6 +4487,12 @@ export declare interface ThumbnailSimpleProps extends default_2.HTMLAttributes<H
4566
4487
  onLoad?: default_2.ReactEventHandler<HTMLImageElement>;
4567
4488
  onError?: default_2.ReactEventHandler<HTMLImageElement>;
4568
4489
  iconOnly?: boolean;
4490
+ /** show a hover-scrub filmstrip (the entity should have reviewables) */
4491
+ filmstrip?: boolean;
4492
+ /** filmstrip url override, when the entity props are not available */
4493
+ filmstripUrl?: string | null;
4494
+ /** should match object-fit of the image */
4495
+ filmstripFit?: 'cover' | 'contain';
4569
4496
  }
4570
4497
 
4571
4498
  /**
@@ -4587,6 +4514,8 @@ export declare type ToolbarLayout = (ToolbarItem | '|')[];
4587
4514
 
4588
4515
  declare type TopicUpdateType = 'created' | 'label_changed' | 'renamed' | 'type_changed' | 'status_changed' | 'tags_changed' | 'attrib_changed' | 'deleted';
4589
4516
 
4517
+ export declare const toUserRef: (user: UserDetailsSource) => UserRef;
4518
+
4590
4519
  declare type UpdateEntitiesArgs = {
4591
4520
  operations: UpdateEntityOperation[];
4592
4521
  entityType: EntityType_2;
@@ -4617,8 +4546,8 @@ declare type UpdateSubtasksMutation = ReturnType<typeof useUpdateSubtasksMutatio
4617
4546
  declare type UpdateViewApiArg = {
4618
4547
  viewType: string;
4619
4548
  viewId: string;
4620
- projectName?: string;
4621
- payload: OverviewViewPatchModel | TaskProgressViewPatchModel | ListsViewPatchModel | ReviewsViewPatchModel | VersionsViewPatchModel | GenericViewPatchModel;
4549
+ projectName?: string | null;
4550
+ genericViewPatchModel: GenericViewPatchModel;
4622
4551
  };
4623
4552
 
4624
4553
  declare type UpdateViewSettingsFn = (updatedSettings: any, localStateSetter: (value: any) => void, newLocalValue: any, options: UpdateOptions) => Promise<void>;
@@ -4659,6 +4588,9 @@ export declare const useAddonTableShortcuts: (table: ShortcutTable | undefined)
4659
4588
  dialog: OpenAddonShortcutDialog | null;
4660
4589
  };
4661
4590
 
4591
+ /** The addons' items for the user details "more" menu. */
4592
+ export declare const useAddonUserMenuItems: (context: UserDetailsContext) => AddonUserMenuItems;
4593
+
4662
4594
  export declare const useBuildFilterOptions: ({ filterTypes: globalFilterTypes, projectNames, scope, scopes: customScopes, data, config, power, }: BuildFilterOptions) => {
4663
4595
  options: Option_2[];
4664
4596
  groupOptions: SearchFilterGroupOption[];
@@ -4695,6 +4627,28 @@ export declare type UseDateRangeFilterReturn = {
4695
4627
  handleCustomRangeClose: () => void;
4696
4628
  };
4697
4629
 
4630
+ /**
4631
+ * Adds a hover-scrub filmstrip to an ARC EntityCard.
4632
+ *
4633
+ * EntityCard does not accept thumbnail children, but it spreads `pt.thumbnail` onto its
4634
+ * thumbnail element (ref included), so the filmstrip is portalled into that element.
4635
+ *
4636
+ * @example
4637
+ * const { thumbnailProps, filmstrip } = useEntityCardFilmstrip(filmstripUrl)
4638
+ * <EntityCard pt={{ thumbnail: thumbnailProps }} />
4639
+ * {filmstrip}
4640
+ */
4641
+ export declare const useEntityCardFilmstrip: (src?: string | null, { disabled }?: {
4642
+ disabled?: boolean;
4643
+ }) => UseEntityCardFilmstripResult;
4644
+
4645
+ declare interface UseEntityCardFilmstripResult {
4646
+ /** pass to EntityCard `pt.thumbnail` */
4647
+ thumbnailProps: Partial<HTMLAttributes<HTMLDivElement>>;
4648
+ /** render next to the EntityCard */
4649
+ filmstrip: ReactNode;
4650
+ }
4651
+
4698
4652
  export declare const useFeedback: () => FeedbackContextType;
4699
4653
 
4700
4654
  export declare const useFeedbackSafe: () => FeedbackContextType | undefined;
@@ -4706,12 +4660,48 @@ export declare const useProjectPageSlotContext: (projectName: string) => SlotMap
4706
4660
 
4707
4661
  export declare const USER_KEY_PREFIX = "user:";
4708
4662
 
4709
- declare type UserAttribModel = {
4710
- fullName?: string;
4711
- email?: string;
4712
- avatarUrl?: string;
4713
- developerMode?: boolean;
4714
- };
4663
+ /** Context of a user details section or menu item. */
4664
+ declare interface UserDetailsContext extends UsersScope {
4665
+ /**
4666
+ * the signed-in user can't change these users (a manager and an admin among them): show,
4667
+ * don't edit
4668
+ */
4669
+ readOnly: boolean
4670
+ }
4671
+
4672
+ /** Description of a `userDetails.menuItem` contribution. */
4673
+ declare interface UserDetailsMenuItemMeta extends MenuItemMeta {
4674
+ /** `single`: only when one user is selected; `multi` (default): for one or more */
4675
+ selection?: UserSelection
4676
+ }
4677
+
4678
+ /** Description of a `userDetails.section` contribution. */
4679
+ declare interface UserDetailsSectionMeta {
4680
+ /** unique among the addon's sections */
4681
+ id: string
4682
+ /** the section's title, above its content */
4683
+ title: string
4684
+ /** order among addon sections, lowest first */
4685
+ order?: number
4686
+ /** `single`: only when one user is selected; `multi` (default): for one or more */
4687
+ selection?: UserSelection
4688
+ /** also shown for service users, whose panel has no forms; `false` by default */
4689
+ serviceUsers?: boolean
4690
+ }
4691
+
4692
+ /** A user as AYON's users queries have it. */
4693
+ export declare interface UserDetailsSource {
4694
+ name: string;
4695
+ active?: boolean;
4696
+ isAdmin?: boolean;
4697
+ isManager?: boolean;
4698
+ isGuest?: boolean;
4699
+ isService?: boolean;
4700
+ attrib?: {
4701
+ fullName?: string | null;
4702
+ email?: string | null;
4703
+ } | null;
4704
+ }
4715
4705
 
4716
4706
  export declare const useReviewablesUpload: ({ projectName, versionId, taskId, folderId, productId, dispatch, onUpload, onProgress, }: UseReviewablesUploadProps) => UploadHandlers;
4717
4707
 
@@ -4738,13 +4728,19 @@ declare interface UserImageProps {
4738
4728
  }
4739
4729
 
4740
4730
  declare type UserModel = {
4741
- /** Name is an unique id of the {entity_name} */
4731
+ /** Unique name of the user */
4742
4732
  name: string;
4743
- uiExposureLevel?: number;
4744
- attrib?: UserAttribModel;
4745
- data?: Record<string, any>;
4746
- /** Whether the user is active */
4733
+ uiExposureLevel?: number | null;
4734
+ /** Attribute values of the entity */
4735
+ attrib?: {
4736
+ [key: string]: any;
4737
+ };
4738
+ data?: {
4739
+ [key: string]: any;
4740
+ };
4741
+ /** Whether the entity is active */
4747
4742
  active?: boolean;
4743
+ /** List of attributes explicitly set on the entity itself (not inherited) */
4748
4744
  ownAttrib?: string[];
4749
4745
  /** Time of creation */
4750
4746
  createdAt?: string;
@@ -4752,18 +4748,45 @@ declare type UserModel = {
4752
4748
  updatedAt?: string;
4753
4749
  };
4754
4750
 
4751
+ /**
4752
+ * A user a slot is about, e.g. one selected in Settings → Users. Not the signed-in user: that is
4753
+ * `user` in every slot.
4754
+ */
4755
+ declare interface UserRef {
4756
+ name: string
4757
+ fullName?: string
4758
+ email?: string
4759
+ /** the account is active (not disabled) */
4760
+ active: boolean
4761
+ isAdmin: boolean
4762
+ /** managers and admins */
4763
+ isManager: boolean
4764
+ isGuest: boolean
4765
+ /** a service user (API key) */
4766
+ isService: boolean
4767
+ }
4768
+
4755
4769
  /** Every slot: the signed-in user. The host adds it; AYON renders addons only once signed in. */
4756
4770
  declare interface UserScope {
4757
4771
  user: AddonUser
4758
4772
  }
4759
4773
 
4774
+ /** Which selections a user details contribution shows for. */
4775
+ declare type UserSelection = 'single' | 'multi'
4776
+
4777
+ /** Slots about one or more users. */
4778
+ declare interface UsersScope {
4779
+ /** the users the slot is about, e.g. the ones selected in Settings → Users */
4780
+ users: UserRef[]
4781
+ }
4782
+
4760
4783
  declare type UserSuggestionItem = {
4761
4784
  /** The date and time when the suggested entity was created */
4762
- createdAt?: string;
4785
+ createdAt?: string | null;
4763
4786
  /** The relevance score of the suggestion */
4764
- relevance?: number;
4787
+ relevance?: number | null;
4765
4788
  name: string;
4766
- fullName?: string;
4789
+ fullName?: string | null;
4767
4790
  };
4768
4791
 
4769
4792
  /** The context of a studio.page contribution. */
@@ -4951,10 +4974,13 @@ declare const useUpdateSubtasksMutation: <R extends Record<string, any> = ({
4951
4974
  reset: () => void;
4952
4975
  }];
4953
4976
 
4977
+ /** The context of the user details slots for the selected users. */
4978
+ export declare const useUserDetailsSlotContext: (users: UserDetailsSource[], readOnly: boolean) => UserDetailsContext;
4979
+
4954
4980
  export declare const useVersionUploadContext: () => VersionUploadContextType;
4955
4981
 
4956
4982
  declare type UseViewMutations = {
4957
- onCreateView: (payload: CreateViewApiArg['payload'], isStudioScope: boolean) => Promise<void>;
4983
+ onCreateView: (payload: GenericViewPostModel, isStudioScope: boolean) => Promise<void>;
4958
4984
  onDeleteView: (viewId: string, isStudioScope: boolean) => Promise<void>;
4959
4985
  onUpdateView: (viewId: string, payload: Partial<ViewData>, isStudioScope: boolean) => Promise<void>;
4960
4986
  onResetWorkingView: (args?: {
@@ -4966,70 +4992,15 @@ declare type UseViewMutations = {
4966
4992
  }) => Promise<string>;
4967
4993
  };
4968
4994
 
4969
- declare type VersionsSettings = {
4970
- showProducts?: boolean;
4971
- rowHeight?: number;
4972
- showGrid?: boolean;
4973
- gridHeight?: number;
4974
- featuredVersionOrder?: string[];
4975
- slicerType?: string;
4976
- groupBy?: string;
4977
- groupSortByDesc?: boolean;
4978
- showEmptyGroups?: boolean;
4979
- latestPerFolder?: boolean;
4980
- sortBy?: string | string[];
4981
- sortDesc?: boolean;
4982
- filter?: QueryFilter_5;
4983
- columns?: ColumnItemModel[];
4984
- };
4985
-
4986
4995
  declare type VersionSuggestionItem = {
4987
4996
  /** The date and time when the suggested entity was created */
4988
- createdAt?: string;
4997
+ createdAt?: string | null;
4989
4998
  /** The relevance score of the suggestion */
4990
- relevance?: number;
4999
+ relevance?: number | null;
4991
5000
  id: string;
4992
5001
  version: number;
4993
- parent?: ProductSuggestionItem;
4994
- name?: string;
4995
- };
4996
-
4997
- declare type VersionsViewModel = {
4998
- /** Unique identifier for the view within the given scope. */
4999
- id?: string;
5000
- /** Human-readable name of the view. */
5001
- label: string;
5002
- /** Determines whether the view is only available for the given project or for all projects (studio). */
5003
- scope: 'project' | 'studio';
5004
- /** Name of the user who created the view. Owners have full control over the view, */
5005
- owner: string;
5006
- /** Visibility of the view. Public views are visible to all users, private views are only visible to the owner. */
5007
- visibility: 'public' | 'private';
5008
- /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
5009
- working: boolean;
5010
- position: number;
5011
- accessLevel: number;
5012
- settings: VersionsSettings;
5013
- access: object;
5014
- viewType?: 'versions';
5015
- };
5016
-
5017
- declare type VersionsViewPatchModel = {
5018
- label?: string;
5019
- owner?: string;
5020
- settings?: VersionsSettings;
5021
- viewType?: 'versions';
5022
- };
5023
-
5024
- declare type VersionsViewPostModel = {
5025
- /** Unique identifier for the view within the given scope. */
5026
- id?: string;
5027
- /** Human-readable name of the view. */
5028
- label: string;
5029
- /** Working view is a special type of the view that automatically stores the current view settings without explicitly saving them. Working views are always private and scoped to the project */
5030
- working?: boolean;
5031
- settings: VersionsSettings;
5032
- viewType?: 'versions';
5002
+ parent?: ProductSuggestionItem | null;
5003
+ name?: string | null;
5033
5004
  };
5034
5005
 
5035
5006
  export declare const VersionUploadContext: Context<VersionUploadContextType | undefined>;
@@ -5205,15 +5176,15 @@ declare const viewsQueries: Api<BaseQueryFn<string | {
5205
5176
  getWorkingView: QueryDefinition<GetWorkingViewApiArg, BaseQueryFn<string | {
5206
5177
  document: string | DocumentNode;
5207
5178
  variables?: any;
5208
- } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GetWorkingViewApiResponse, "restApi", unknown>;
5179
+ } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GenericViewModel, "restApi", unknown>;
5209
5180
  getBaseView: QueryDefinition<GetBaseViewApiArg, BaseQueryFn<string | {
5210
5181
  document: string | DocumentNode;
5211
5182
  variables?: any;
5212
- } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GetBaseViewApiResponse, "restApi", unknown>;
5183
+ } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GenericViewModel, "restApi", unknown>;
5213
5184
  getDefaultView: QueryDefinition<GetDefaultViewApiArg, BaseQueryFn<string | {
5214
5185
  document: string | DocumentNode;
5215
5186
  variables?: any;
5216
- } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GetDefaultViewApiResponse, "restApi", unknown>;
5187
+ } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GenericViewModel, "restApi", unknown>;
5217
5188
  setDefaultView: MutationDefinition<SetDefaultViewApiArg, BaseQueryFn<string | {
5218
5189
  document: string | DocumentNode;
5219
5190
  variables?: any;
@@ -5221,12 +5192,12 @@ declare const viewsQueries: Api<BaseQueryFn<string | {
5221
5192
  getView: QueryDefinition<GetViewApiArg, BaseQueryFn<string | {
5222
5193
  document: string | DocumentNode;
5223
5194
  variables?: any;
5224
- } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GetViewApiResponse, "restApi", unknown>;
5225
- deleteView: MutationDefinition<DeleteViewApiArg, BaseQueryFn<string | {
5195
+ } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GenericViewModel, "restApi", unknown>;
5196
+ updateView: MutationDefinition<UpdateViewApiArg, BaseQueryFn<string | {
5226
5197
  document: string | DocumentNode;
5227
5198
  variables?: any;
5228
5199
  } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, any, "restApi", unknown>;
5229
- updateView: MutationDefinition<UpdateViewApiArg, BaseQueryFn<string | {
5200
+ deleteView: MutationDefinition<DeleteViewApiArg, BaseQueryFn<string | {
5230
5201
  document: string | DocumentNode;
5231
5202
  variables?: any;
5232
5203
  } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, any, "restApi", unknown>;
@@ -5242,15 +5213,15 @@ declare const viewsQueries: Api<BaseQueryFn<string | {
5242
5213
  getWorkingView: QueryDefinition<GetWorkingViewApiArg, BaseQueryFn<string | {
5243
5214
  document: string | DocumentNode;
5244
5215
  variables?: any;
5245
- } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GetWorkingViewApiResponse, "restApi", unknown>;
5216
+ } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GenericViewModel, "restApi", unknown>;
5246
5217
  getBaseView: QueryDefinition<GetBaseViewApiArg, BaseQueryFn<string | {
5247
5218
  document: string | DocumentNode;
5248
5219
  variables?: any;
5249
- } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GetBaseViewApiResponse, "restApi", unknown>;
5220
+ } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GenericViewModel, "restApi", unknown>;
5250
5221
  getDefaultView: QueryDefinition<GetDefaultViewApiArg, BaseQueryFn<string | {
5251
5222
  document: string | DocumentNode;
5252
5223
  variables?: any;
5253
- } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GetDefaultViewApiResponse, "restApi", unknown>;
5224
+ } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GenericViewModel, "restApi", unknown>;
5254
5225
  setDefaultView: MutationDefinition<SetDefaultViewApiArg, BaseQueryFn<string | {
5255
5226
  document: string | DocumentNode;
5256
5227
  variables?: any;
@@ -5258,12 +5229,12 @@ declare const viewsQueries: Api<BaseQueryFn<string | {
5258
5229
  getView: QueryDefinition<GetViewApiArg, BaseQueryFn<string | {
5259
5230
  document: string | DocumentNode;
5260
5231
  variables?: any;
5261
- } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GetViewApiResponse, "restApi", unknown>;
5262
- deleteView: MutationDefinition<DeleteViewApiArg, BaseQueryFn<string | {
5232
+ } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, GenericViewModel, "restApi", unknown>;
5233
+ updateView: MutationDefinition<UpdateViewApiArg, BaseQueryFn<string | {
5263
5234
  document: string | DocumentNode;
5264
5235
  variables?: any;
5265
5236
  } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, any, "restApi", unknown>;
5266
- updateView: MutationDefinition<UpdateViewApiArg, BaseQueryFn<string | {
5237
+ deleteView: MutationDefinition<DeleteViewApiArg, BaseQueryFn<string | {
5267
5238
  document: string | DocumentNode;
5268
5239
  variables?: any;
5269
5240
  } | FetchArgs, unknown, FetchBaseQueryError, {} | Partial<Pick< ClientError, "response" | "request">>>, string, any, "restApi", unknown>;