@ynput/ayon-frontend-shared 0.6.3 → 0.6.5

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 (51) hide show
  1. package/dist/DetailsPanel.es.js +480 -477
  2. package/dist/ListTable.es.js +24 -25
  3. package/dist/NewEntity.es.js +6 -7
  4. package/dist/ProjectTreeTable.es.js +2016 -1996
  5. package/dist/Views.es.js +28 -28
  6. package/dist/api.es.js +291 -289
  7. package/dist/chunks/Actions.es.js +12 -12
  8. package/dist/chunks/ColumnDropIndicator.es.js +8 -9
  9. package/dist/chunks/DeleteEntitiesConfirmDialog.es.js +31 -25
  10. package/dist/chunks/DeleteEntitiesContextInstance.es.js +1 -1
  11. package/dist/chunks/DetailsDialog.es.js +1 -1
  12. package/dist/chunks/EmptyPlaceholder.es.js +13 -12
  13. package/dist/chunks/EntityPath.es.js +67 -67
  14. package/dist/chunks/EntityPickerDialog.es.js +1 -1
  15. package/dist/chunks/EntityTooltip.es.js +8 -8
  16. package/dist/chunks/Feed.es.js +692 -689
  17. package/dist/chunks/MetaWidget.es.js +1283 -1279
  18. package/dist/chunks/PlayableIcon.es.js +458 -451
  19. package/dist/chunks/ProjectContext.es.js +20 -20
  20. package/dist/chunks/RepresentationsList.es.js +9 -9
  21. package/dist/chunks/ReviewablesSelector.es.js +1504 -1374
  22. package/dist/chunks/Slicer.es.js +68 -69
  23. package/dist/chunks/ThumbnailSimple.es.js +4 -4
  24. package/dist/chunks/Watchers.es.js +104 -105
  25. package/dist/chunks/activeEntities.es.js +58 -0
  26. package/dist/chunks/columnConfigConverter.es.js +57 -63
  27. package/dist/chunks/getUris.es.js +886 -831
  28. package/dist/chunks/iconUtils.es.js +151 -0
  29. package/dist/chunks/realtimeUpdatesUtils.es.js +113 -80
  30. package/dist/chunks/searchTerms.es.js +329 -247
  31. package/dist/chunks/useAttributeEnums.es.js +34 -34
  32. package/dist/chunks/viewUpdateHelper.es.js +11 -11
  33. package/dist/components.es.js +340 -337
  34. package/dist/context.es.js +48 -48
  35. package/dist/hooks.es.js +34 -34
  36. package/dist/index.es.js +1 -1
  37. package/dist/types/ContextMenu.d.ts +1 -1
  38. package/dist/types/Feed.d.ts +1 -1
  39. package/dist/types/ListTable.d.ts +1 -1
  40. package/dist/types/ProjectTreeTable.d.ts +4 -1
  41. package/dist/types/SimpleTable.d.ts +1 -1
  42. package/dist/types/Slicer.d.ts +5 -5
  43. package/dist/types/Views.d.ts +4 -4
  44. package/dist/types/api.d.ts +545 -171
  45. package/dist/types/components.d.ts +64 -9
  46. package/dist/types/context.d.ts +5 -5
  47. package/dist/types/util.d.ts +237 -2
  48. package/dist/util.es.js +127 -114
  49. package/package.json +1 -1
  50. package/dist/chunks/extractEntityHierarchyFromParents.es.js +0 -28
  51. package/dist/chunks/parseHtmlToPlainTextWithLinks.es.js +0 -138
@@ -136,6 +136,21 @@ declare type AddColumnItem = SettingsPanelItem & {
136
136
  parentScope?: EntityType;
137
137
  };
138
138
 
139
+ declare type AddLinks = (links: {
140
+ targetEntityId: string;
141
+ linkId: string;
142
+ }[], addToHistory?: boolean) => Promise<boolean>;
143
+
144
+ export declare const AddNewLinks: FC<AddNewLinksProps>;
145
+
146
+ declare interface AddNewLinksProps {
147
+ targetEntityType: string;
148
+ projectName: string;
149
+ onClose?: () => void;
150
+ onSearchTypeChange: (type: LinkSearchType) => void;
151
+ onAdd?: (targetEntityId: string, linkType?: string) => void;
152
+ }
153
+
139
154
  export declare const AddonLoadingScreen: FC<ReportsLoadingScreenProps>;
140
155
 
141
156
  declare type AlignType = 'left' | 'right';
@@ -509,7 +524,7 @@ declare interface CustomDateRangeDialogProps {
509
524
  onClose: () => void;
510
525
  }
511
526
 
512
- export declare const CustomizeButton: ({ defaultSelected, className, ...props }: Props) => JSX_2.Element;
527
+ export declare const CustomizeButton: ({ defaultSelected, className, ...props }: Props_2) => JSX_2.Element;
513
528
 
514
529
  export declare const customRangeOption: Option_2 & {
515
530
  id: typeof CUSTOM_RANGE_ID;
@@ -967,7 +982,7 @@ declare type EntityData = Record<string, unknown> & {
967
982
  };
968
983
  };
969
984
 
970
- export declare const EntityIcon: ({ entity, icon, color, ...props }: Props_2) => JSX_2.Element;
985
+ export declare const EntityIcon: ({ entity, icon, color, ...props }: Props_3) => JSX_2.Element;
971
986
 
972
987
  declare type EntityIdResponse_10 = {
973
988
  /** Entity ID */
@@ -1565,6 +1580,21 @@ declare interface GridConfig {
1565
1580
 
1566
1581
  export declare const GROUP_KEY_PREFIX = "group:";
1567
1582
 
1583
+ export declare type GroupedLink = {
1584
+ groupKey: string;
1585
+ entityId: string;
1586
+ count: number;
1587
+ linkIds: string[];
1588
+ representative: LinkEntity;
1589
+ };
1590
+
1591
+ /**
1592
+ * Groups links by entityId. Restricted links are never grouped
1593
+ * (we can't verify they're the same entity), each gets its own group.
1594
+ * Preserves sort order of first occurrence.
1595
+ */
1596
+ export declare const groupLinksByEntity: (links: LinkEntity[]) => GroupedLink[];
1597
+
1568
1598
  export declare const GUEST_KEY_PREFIX = "guest:";
1569
1599
 
1570
1600
  export declare interface HeightSliderProps {
@@ -1682,8 +1712,11 @@ export declare interface LinkManagerItemProps {
1682
1712
  onRemove: (e: React.MouseEvent<HTMLButtonElement>, link: LinkEntity) => void;
1683
1713
  onCountChange?: (newCount: number) => void;
1684
1714
  isManager?: boolean;
1715
+ readOnly?: boolean;
1685
1716
  }
1686
1717
 
1718
+ export declare type LinkSearchType = 'search' | 'picker' | null;
1719
+
1687
1720
  export declare const LinksManager: FC<LinksManagerProps>;
1688
1721
 
1689
1722
  export declare interface LinksManagerDialogProps {
@@ -1752,7 +1785,7 @@ declare interface ListMetaDataProps {
1752
1785
 
1753
1786
  declare type ListsSettings = {
1754
1787
  rowHeight?: number;
1755
- sortBy?: string;
1788
+ sortBy?: string | string[];
1756
1789
  sortDesc?: boolean;
1757
1790
  filter?: QueryFilter_5;
1758
1791
  columns?: ColumnItemModel[];
@@ -1917,7 +1950,7 @@ declare type OverviewSettings = {
1917
1950
  groupBy?: string;
1918
1951
  groupSortByDesc?: boolean;
1919
1952
  showEmptyGroups?: boolean;
1920
- sortBy?: string;
1953
+ sortBy?: string | string[];
1921
1954
  sortDesc?: boolean;
1922
1955
  filter?: QueryFilter_5;
1923
1956
  folderFilter?: QueryFilter_5;
@@ -2028,7 +2061,7 @@ declare type PowerpackDialogType = {
2028
2061
  icon?: string;
2029
2062
  };
2030
2063
 
2031
- declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries';
2064
+ declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'entityLinks';
2032
2065
 
2033
2066
  declare interface Processing extends ReviewableProcessingStatus {
2034
2067
  progress?: number;
@@ -2187,11 +2220,20 @@ export declare type ProjectTableSettingsProps = {
2187
2220
  columnIdAliases?: ColumnIdAliases;
2188
2221
  };
2189
2222
 
2190
- declare interface Props extends ButtonProps {
2223
+ declare type Props = {
2224
+ projectName: string;
2225
+ entityId: string;
2226
+ entityType: string;
2227
+ targetEntityType: string;
2228
+ linkType: string;
2229
+ direction?: 'in' | 'out';
2230
+ };
2231
+
2232
+ declare interface Props_2 extends ButtonProps {
2191
2233
  defaultSelected?: string | null;
2192
2234
  }
2193
2235
 
2194
- declare interface Props_2 extends Partial<IconProps> {
2236
+ declare interface Props_3 extends Partial<IconProps> {
2195
2237
  entity: {
2196
2238
  entityType: string;
2197
2239
  subType?: string;
@@ -2279,6 +2321,14 @@ export declare interface RemotePageWrapperProps {
2279
2321
  }) => void;
2280
2322
  }
2281
2323
 
2324
+ declare type RemoveLinks = (links: {
2325
+ id: string;
2326
+ target: {
2327
+ entityId: string;
2328
+ entityType: string;
2329
+ };
2330
+ }[], addToHistory?: boolean) => Promise<void>;
2331
+
2282
2332
  export declare interface ReportsLoadingScreenProps extends HTMLAttributes<HTMLDivElement> {
2283
2333
  showSidebar?: boolean;
2284
2334
  sidebarConfig?: SidebarConfig;
@@ -2437,7 +2487,7 @@ export declare interface ReviewableUploadProps extends React.HTMLProps<HTMLDivEl
2437
2487
 
2438
2488
  declare type ReviewsSettings = {
2439
2489
  rowHeight?: number;
2440
- sortBy?: string;
2490
+ sortBy?: string | string[];
2441
2491
  sortDesc?: boolean;
2442
2492
  filter?: QueryFilter_5;
2443
2493
  columns?: ColumnItemModel[];
@@ -3211,6 +3261,11 @@ declare type UserModel = {
3211
3261
  updatedAt?: string;
3212
3262
  };
3213
3263
 
3264
+ export declare const useUpdateLinks: ({ projectName, direction, entityId, entityType, targetEntityType, linkType, }: Props) => {
3265
+ remove: RemoveLinks;
3266
+ add: AddLinks;
3267
+ };
3268
+
3214
3269
  declare const useUpdateSubtasksMutation: <R extends Record<string, any> = ({
3215
3270
  requestId?: undefined;
3216
3271
  status: QueryStatus.uninitialized;
@@ -3414,7 +3469,7 @@ declare type VersionsSettings = {
3414
3469
  groupSortByDesc?: boolean;
3415
3470
  showEmptyGroups?: boolean;
3416
3471
  latestPerFolder?: boolean;
3417
- sortBy?: string;
3472
+ sortBy?: string | string[];
3418
3473
  sortDesc?: boolean;
3419
3474
  filter?: QueryFilter_5;
3420
3475
  columns?: ColumnItemModel[];
@@ -792,7 +792,7 @@ declare type ListProjectsItemModel = {
792
792
 
793
793
  declare type ListsSettings = {
794
794
  rowHeight?: number;
795
- sortBy?: string;
795
+ sortBy?: string | string[];
796
796
  sortDesc?: boolean;
797
797
  filter?: QueryFilter_5;
798
798
  columns?: ColumnItemModel[];
@@ -885,7 +885,7 @@ declare type OverviewSettings = {
885
885
  groupBy?: string;
886
886
  groupSortByDesc?: boolean;
887
887
  showEmptyGroups?: boolean;
888
- sortBy?: string;
888
+ sortBy?: string | string[];
889
889
  sortDesc?: boolean;
890
890
  filter?: QueryFilter_5;
891
891
  folderFilter?: QueryFilter_5;
@@ -982,7 +982,7 @@ export declare type PowerpackDialogType = {
982
982
  icon?: string;
983
983
  };
984
984
 
985
- export declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries';
985
+ export declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'entityLinks';
986
986
 
987
987
  export declare const powerpackFeatureOrder: PowerpackFeature[];
988
988
 
@@ -1352,7 +1352,7 @@ declare type ResolvedUriModel = {
1352
1352
 
1353
1353
  declare type ReviewsSettings = {
1354
1354
  rowHeight?: number;
1355
- sortBy?: string;
1355
+ sortBy?: string | string[];
1356
1356
  sortDesc?: boolean;
1357
1357
  filter?: QueryFilter_5;
1358
1358
  columns?: ColumnItemModel[];
@@ -2198,7 +2198,7 @@ declare type VersionsSettings = {
2198
2198
  groupSortByDesc?: boolean;
2199
2199
  showEmptyGroups?: boolean;
2200
2200
  latestPerFolder?: boolean;
2201
- sortBy?: string;
2201
+ sortBy?: string | string[];
2202
2202
  sortDesc?: boolean;
2203
2203
  filter?: QueryFilter_5;
2204
2204
  columns?: ColumnItemModel[];
@@ -10,6 +10,40 @@ import { VisibilityState } from '@tanstack/react-table';
10
10
 
11
11
  declare type AcceptedParams = Record<string, unknown> | undefined | null;
12
12
 
13
+ export declare const ACTIVE_ENTITIES_PRIORITY: {
14
+ readonly page: 0;
15
+ readonly detailsPanel: 1;
16
+ readonly slideOut: 2;
17
+ };
18
+
19
+ export declare type ActiveEntity = {
20
+ id: string;
21
+ entityType: string;
22
+ projectName: string;
23
+ };
24
+
25
+ declare type Anatomy = {
26
+ /** Settings for automatic entity name generation */
27
+ entity_naming?: EntityNaming;
28
+ /** Setup root paths for the project */
29
+ roots?: Root[];
30
+ /** Path templates configuration */
31
+ templates?: Templates;
32
+ /** Attributes configuration */
33
+ attributes?: ProjectAttribModel;
34
+ /** Folder types configuration */
35
+ folder_types?: FolderType[];
36
+ /** Task types configuration */
37
+ task_types?: TaskType[];
38
+ /** Link types configuration */
39
+ link_types?: LinkType[];
40
+ /** Statuses configuration */
41
+ statuses?: Status[];
42
+ /** Tags configuration */
43
+ tags?: Tag[];
44
+ product_base_types?: ProductBaseTypes;
45
+ };
46
+
13
47
  declare type AttributeData = {
14
48
  /** Type of attribute value */
15
49
  type?: 'string' | 'integer' | 'float' | 'boolean' | 'datetime' | 'list_of_strings' | 'list_of_integers' | 'list_of_any' | 'list_of_submodels' | 'dict';
@@ -194,6 +228,17 @@ export declare interface BuildHierarchicalRowsConfig<TFolder, TItem> {
194
228
  */
195
229
  export declare const buildHierarchicalTableRows: <TFolder, TItem>(config: BuildHierarchicalRowsConfig<TFolder, TItem>) => SimpleTableRow[];
196
230
 
231
+ /**
232
+ * Builds the `sortBy` and `desc` arguments of the paginated entity queries.
233
+ *
234
+ * `desc` is the direction of the first key. The queries page a descending sort
235
+ * backwards (`last`/`before`), which reverses the whole ordering on the
236
+ * backend, so the other keys are prefixed with `-` when their direction differs
237
+ * from the first key rather than when they are descending.
238
+ * A single key is sent as a plain string, exactly as before multi-key sorting.
239
+ */
240
+ export declare const buildSortArgs: (keys: SortKey[]) => SortArgs;
241
+
197
242
  export declare type BundleMode = 'production' | 'staging' | 'developer';
198
243
 
199
244
  export declare const checkLabel: (label?: string | null) => CheckNameResult;
@@ -205,6 +250,8 @@ export declare interface CheckNameResult {
205
250
  error?: string;
206
251
  }
207
252
 
253
+ export declare const clearActiveEntities: (key: string) => void;
254
+
208
255
  declare type ColumnItemModel = {
209
256
  name: string;
210
257
  visible?: boolean;
@@ -288,8 +335,18 @@ export declare function createRealtimeBatcher<T>(onBatch: RealtimeBatchProcessor
288
335
  */
289
336
  export declare const createVersionHelper: (createVersionMutation: any, projectName: string, versionData: VersionCreationData) => Promise<any>;
290
337
 
338
+ declare type CustomTemplate = {
339
+ name: string;
340
+ value?: string;
341
+ };
342
+
291
343
  declare type DataType = 'string' | 'list_of_strings' | string;
292
344
 
345
+ declare type DefaultProductBaseType = {
346
+ color?: string;
347
+ icon?: string;
348
+ };
349
+
293
350
  /**
294
351
  * Configuration for delete folder operation
295
352
  */
@@ -302,6 +359,12 @@ export declare interface DeleteFolderConfig<T extends FolderWithLabel> {
302
359
  messageDetail?: string;
303
360
  }
304
361
 
362
+ declare type DeliveryTemplate = {
363
+ name: string;
364
+ directory: string;
365
+ file: string;
366
+ };
367
+
305
368
  declare type EntityNaming = {
306
369
  /** How to capitalize the entity names */
307
370
  capitalization?: 'lower' | 'upper' | 'keep' | 'pascal' | 'camel';
@@ -309,6 +372,13 @@ declare type EntityNaming = {
309
372
  separator?: '' | '_' | '-' | '.';
310
373
  };
311
374
 
375
+ declare type EntityNaming_2 = {
376
+ /** How to capitalize the entity names */
377
+ capitalization?: 'lower' | 'upper' | 'keep' | 'pascal' | 'camel';
378
+ /** Character to separate different parts of the name */
379
+ separator?: '' | '_' | '-' | '.';
380
+ };
381
+
312
382
  export declare const entityTypesWithIcons: string[];
313
383
 
314
384
  declare type EntityUri = {
@@ -420,6 +490,14 @@ export declare interface FolderHierarchyResult<T extends HierarchicalFolder> {
420
490
  rootFolders: FolderWithChildren<T>[];
421
491
  }
422
492
 
493
+ declare type FolderType = {
494
+ name: string;
495
+ original_name?: string;
496
+ shortName?: string;
497
+ color?: string;
498
+ icon?: string;
499
+ };
500
+
423
501
  /**
424
502
  * Folder with children array attached
425
503
  */
@@ -435,6 +513,8 @@ export declare interface FolderWithLabel {
435
513
  label?: string;
436
514
  }
437
515
 
516
+ export declare const getActiveEntities: () => ActiveEntity[];
517
+
438
518
  export declare const getAttributeIcon: GetAttributesIcon;
439
519
 
440
520
  declare type GetAttributesIcon = (name: string, type?: AttributeData_2['type'], hasEnum?: boolean) => string;
@@ -443,6 +523,10 @@ export declare const getBundleModeFromUser: (user: UserModel | undefined) => Bun
443
523
 
444
524
  export declare const getCurrentPlatform: () => "other" | "windows" | "linux" | "darwin";
445
525
 
526
+ export declare const getEntityColor: (entityType: string, subType: string | undefined, anatomy: IconAnatomy) => string | undefined;
527
+
528
+ export declare const getEntityIcon: (entityType: string, subType: string | undefined, anatomy: IconAnatomy) => string;
529
+
446
530
  export declare const getEntityId: () => string;
447
531
 
448
532
  export declare const getEntityStateFromUri: (uri: string) => EntityUri;
@@ -513,6 +597,9 @@ export declare const getNextVersionNumber: (existingVersion?: {
513
597
 
514
598
  export declare const getPlatformShortcutKey: (key: string, modes: KeyMode[], prefix?: string) => string;
515
599
 
600
+ /** The first key of a `sortBy` argument, without its direction prefix. */
601
+ export declare const getPrimarySortKey: (sortBy?: string | string[] | null) => string | undefined;
602
+
516
603
  export declare const getPriorityOptions: (priority: AttributeModel | undefined, type: ScopeEntityType) => EnumItem_2[] | undefined;
517
604
 
518
605
  export declare const getProjectDisplayName: (project: ProjectLike | null | undefined) => string;
@@ -577,6 +664,12 @@ export declare const hasEnumOptions: (data: EnumSource) => boolean;
577
664
 
578
665
  export declare const hasEnumResolver: (data: EnumSource) => boolean;
579
666
 
667
+ declare type HeroTemplate = {
668
+ name: string;
669
+ directory: string;
670
+ file: string;
671
+ };
672
+
580
673
  /**
581
674
  * Parse a hex color string to RGB components
582
675
  */
@@ -612,6 +705,8 @@ export declare interface HierarchicalFolderNode<TFolder, TItem> {
612
705
 
613
706
  export declare function humanizeField(input: string): string;
614
707
 
708
+ export declare type IconAnatomy = Pick<Anatomy, 'folder_types' | 'task_types' | 'product_base_types'>;
709
+
615
710
  declare type IconModel = {
616
711
  type?: 'material-symbols' | 'url';
617
712
  /** The name of the icon (for type material-symbols) */
@@ -664,10 +759,20 @@ export declare enum KeyMode {
664
759
  Shift = "shift"
665
760
  }
666
761
 
762
+ declare type LinkType = {
763
+ link_type: string;
764
+ input_type: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
765
+ output_type: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
766
+ color?: string;
767
+ style?: 'solid' | 'dashed';
768
+ };
769
+
667
770
  declare type MainCalc = 'count' | 'breakdown';
668
771
 
669
772
  export declare const matchSearchQuery: (haystack: string, groups: string[][]) => RankingInfo;
670
773
 
774
+ export declare const MAX_SORT_KEYS = 5;
775
+
671
776
  export declare const mentionTypeOptions: {
672
777
  '@@@': {
673
778
  id: string;
@@ -693,7 +798,7 @@ declare type OverviewSettings = {
693
798
  groupBy?: string;
694
799
  groupSortByDesc?: boolean;
695
800
  showEmptyGroups?: boolean;
696
- sortBy?: string;
801
+ sortBy?: string | string[];
697
802
  sortDesc?: boolean;
698
803
  filter?: QueryFilter;
699
804
  folderFilter?: QueryFilter;
@@ -701,7 +806,7 @@ declare type OverviewSettings = {
701
806
  columns?: ColumnItemModel[];
702
807
  };
703
808
 
704
- export declare const parseAndFormatName: (raw: string, config?: EntityNaming) => string;
809
+ export declare const parseAndFormatName: (raw: string, config?: EntityNaming_2) => string;
705
810
 
706
811
  /**
707
812
  * Parse a CSS color string (hex or rgb/rgba) to RGB components
@@ -729,10 +834,32 @@ export declare const parseUri: (uri: string) => {
729
834
  entity?: EntityUri;
730
835
  };
731
836
 
837
+ /**
838
+ * Reads the sorting of a saved view.
839
+ *
840
+ * Views store `sortBy` as a list of column ids in order of precedence, where a
841
+ * `-` prefix means descending: `['-status', 'name']`.
842
+ * Views saved before multi-key sorting store a single column id and a separate
843
+ * `sortDesc` flag, which is only read for that old format.
844
+ */
845
+ export declare const parseViewSorting: (sortBy?: string | string[] | null, sortDesc?: boolean | null) => SortingState;
846
+
732
847
  export declare const pastedListToSearch: (text: string) => string | null;
733
848
 
734
849
  export declare const pluralize: (count: number, singular: string) => string;
735
850
 
851
+ declare type ProductBaseType = {
852
+ name?: string;
853
+ color?: string;
854
+ icon?: string;
855
+ };
856
+
857
+ declare type ProductBaseTypes = {
858
+ /** Default appearance for product types */
859
+ default?: DefaultProductBaseType;
860
+ definitions?: ProductBaseType[];
861
+ };
862
+
736
863
  export declare interface ProductCreationData {
737
864
  folderId: string;
738
865
  name: string;
@@ -740,6 +867,29 @@ export declare interface ProductCreationData {
740
867
  productBaseType?: string;
741
868
  }
742
869
 
870
+ declare type ProjectAttribModel = {
871
+ priority?: 'urgent' | 'high' | 'normal' | 'low';
872
+ /** Frame rate */
873
+ fps?: number;
874
+ /** Horizontal resolution */
875
+ resolutionWidth?: number;
876
+ /** Vertical resolution */
877
+ resolutionHeight?: number;
878
+ pixelAspect?: number;
879
+ clipIn?: number;
880
+ clipOut?: number;
881
+ frameStart?: number;
882
+ frameEnd?: number;
883
+ handleStart?: number;
884
+ handleEnd?: number;
885
+ /** Date and time when the project or task or asset was started */
886
+ startDate?: string;
887
+ /** Deadline date and time */
888
+ endDate?: string;
889
+ /** Textual description of the entity */
890
+ description?: string;
891
+ };
892
+
743
893
  declare type ProjectLike = {
744
894
  name: string;
745
895
  label?: string | null;
@@ -751,6 +901,12 @@ declare interface ProjectTableAttribute extends Omit<AttributeModel_2, 'position
751
901
  enumError?: string;
752
902
  }
753
903
 
904
+ declare type PublishTemplate = {
905
+ name: string;
906
+ directory: string;
907
+ file: string;
908
+ };
909
+
754
910
  /**
755
911
  * Copyright (c) 2010,2011,2012,2013,2014 Morgan Roderick http://roderick.dk
756
912
  * License: MIT - http://mrgnrdrck.mit-license.org
@@ -792,6 +948,13 @@ export declare const replaceRoot: (input?: string | null, roots?: Record<string,
792
948
  */
793
949
  export declare const rgbToHex: (r: number, g: number, b: number) => string;
794
950
 
951
+ declare type Root = {
952
+ name: string;
953
+ windows?: string;
954
+ linux?: string;
955
+ darwin?: string;
956
+ };
957
+
795
958
  declare type RowItemData = {
796
959
  id: string;
797
960
  name?: string | null;
@@ -809,6 +972,14 @@ export declare const sanitizeProductName: (name: string) => string;
809
972
 
810
973
  declare type ScopeEntityType = 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile' | 'project' | 'user';
811
974
 
975
+ /**
976
+ * Writes the sorting of a view, see `parseViewSorting` for the format.
977
+ * No sorting is `undefined` so the view falls back to its default order.
978
+ */
979
+ export declare const serializeViewSorting: (sorting?: SortingState) => string[] | undefined;
980
+
981
+ export declare const setActiveEntities: (key: string, entities: ActiveEntity[], priority?: number) => void;
982
+
812
983
  declare type SettingsUri = {
813
984
  addonName: string;
814
985
  addonVersion: string;
@@ -845,8 +1016,34 @@ declare type SimpleTableRow = {
845
1016
  badge?: string | React.ReactNode;
846
1017
  };
847
1018
 
1019
+ export declare type SortArgs = {
1020
+ sortBy: string | string[] | undefined;
1021
+ desc: boolean;
1022
+ };
1023
+
1024
+ export declare type SortKey = {
1025
+ key?: string;
1026
+ desc?: boolean;
1027
+ };
1028
+
848
1029
  export declare const sortKeysDeep: (value: unknown) => unknown;
849
1030
 
1031
+ declare type StagingDirectory = {
1032
+ name: string;
1033
+ directory?: string;
1034
+ };
1035
+
1036
+ declare type Status = {
1037
+ name: string;
1038
+ original_name?: string;
1039
+ shortName?: string;
1040
+ state?: 'not_started' | 'in_progress' | 'done' | 'blocked';
1041
+ icon?: string;
1042
+ color?: string;
1043
+ /** Limit the status to specific entity types. */
1044
+ scope?: string[];
1045
+ };
1046
+
850
1047
  /**
851
1048
  * Subscribes a callback to listen for thumbnail updates.
852
1049
  *
@@ -869,6 +1066,33 @@ declare interface TableGroupBy {
869
1066
  id: string;
870
1067
  }
871
1068
 
1069
+ declare type Tag = {
1070
+ name: string;
1071
+ original_name?: string;
1072
+ color?: string;
1073
+ };
1074
+
1075
+ declare type TaskType = {
1076
+ name: string;
1077
+ original_name?: string;
1078
+ shortName?: string;
1079
+ color?: string;
1080
+ icon?: string;
1081
+ };
1082
+
1083
+ declare type Templates = {
1084
+ version_padding?: number;
1085
+ version?: string;
1086
+ frame_padding?: number;
1087
+ frame?: string;
1088
+ work?: WorkTemplate[];
1089
+ publish?: PublishTemplate[];
1090
+ hero?: HeroTemplate[];
1091
+ delivery?: DeliveryTemplate[];
1092
+ staging?: StagingDirectory[];
1093
+ others?: CustomTemplate[];
1094
+ };
1095
+
872
1096
  declare type TextCalc = 'filled' | 'notFilled';
873
1097
 
874
1098
  /**
@@ -888,6 +1112,8 @@ export declare type ThumbnailUpdater = (messages: ThumbnailUpdateMessage[]) => v
888
1112
 
889
1113
  export declare const toDropdownErrorText: (text?: string) => string | undefined;
890
1114
 
1115
+ export declare const useActiveEntities: () => ActiveEntity[];
1116
+
891
1117
  declare type UserAttribModel = {
892
1118
  fullName?: string;
893
1119
  email?: string;
@@ -895,6 +1121,9 @@ declare type UserAttribModel = {
895
1121
  developerMode?: boolean;
896
1122
  };
897
1123
 
1124
+ /** Register entities for as long as the calling component is mounted. */
1125
+ export declare const useRegisterActiveEntities: (entities: ActiveEntity[] | undefined, priority?: number) => void;
1126
+
898
1127
  declare type UserModel = {
899
1128
  /** Name is an unique id of the {entity_name} */
900
1129
  name: string;
@@ -946,6 +1175,12 @@ export declare interface VersionCreationData {
946
1175
 
947
1176
  export declare const waitForRealtimeJitter: () => Promise<void>;
948
1177
 
1178
+ declare type WorkTemplate = {
1179
+ name: string;
1180
+ directory: string;
1181
+ file: string;
1182
+ };
1183
+
949
1184
  export { }
950
1185
 
951
1186