@ynput/ayon-frontend-shared 0.7.6 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +773 -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 +475 -467
  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 +199 -195
  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 +3164 -2363
  61. package/dist/types/components.d.ts +327 -474
  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
@@ -38,7 +38,9 @@ declare type Anatomy = {
38
38
  /** Path templates configuration */
39
39
  templates?: Templates;
40
40
  /** Attributes configuration */
41
- attributes?: ProjectAttribModel;
41
+ attributes?: {
42
+ [key: string]: any;
43
+ };
42
44
  /** Folder types configuration */
43
45
  folder_types?: FolderType[];
44
46
  /** Task types configuration */
@@ -56,72 +58,80 @@ declare type AttributeData = {
56
58
  /** Type of attribute value */
57
59
  type?: 'string' | 'integer' | 'float' | 'boolean' | 'datetime' | 'list_of_strings' | 'list_of_integers' | 'list_of_any' | 'list_of_submodels' | 'dict';
58
60
  /** Nice, human readable title of the attribute */
59
- title?: string;
60
- description?: string;
61
+ title?: string | null;
62
+ description?: string | null;
61
63
  /** Example value of the field. */
62
64
  example?: any;
63
65
  /** Default value for the attribute. Do not set for list types. */
64
66
  default?: any;
65
- gt?: number | number;
66
- ge?: number | number;
67
- lt?: number | number;
68
- le?: number | number;
69
- minLength?: number;
70
- maxLength?: number;
67
+ gt?: number | number | null;
68
+ ge?: number | number | null;
69
+ lt?: number | number | null;
70
+ le?: number | number | null;
71
+ minLength?: number | null;
72
+ maxLength?: number | null;
71
73
  /** Minimum number of items in list type. */
72
- minItems?: number;
74
+ minItems?: number | null;
73
75
  /** Only for list types. Maximum number of items in the list. */
74
- maxItems?: number;
76
+ maxItems?: number | null;
75
77
  /** Only for string types. The value must match this regex. */
76
- regex?: string;
78
+ regex?: string | null;
77
79
  /** List of enum items used for displaying select widgets */
78
- enum?: EnumItem[];
80
+ enum?: EnumItem[] | null;
79
81
  /** Name of the function that provides enum values dynamically. */
80
- enumResolver?: string;
82
+ enumResolver?: string | null;
81
83
  /** Settings passed to the enum resolver function. */
82
- enumResolverSettings?: object;
84
+ enumResolverSettings?: {
85
+ [key: string]: any;
86
+ } | null;
83
87
  /** Inherit the attribute value from the parent entity. */
84
88
  inherit?: boolean;
85
89
  /** Specific widget style this field should use. */
86
- widget?: string;
90
+ widget?: string | null;
87
91
  /** Any additional config specific for the widget style.(Date formats, precision etc.) */
88
- widgetSettings?: object;
92
+ widgetSettings?: {
93
+ [key: string]: any;
94
+ } | null;
89
95
  };
90
96
 
91
97
  declare type AttributeData_2 = {
92
98
  /** Type of attribute value */
93
99
  type?: 'string' | 'integer' | 'float' | 'boolean' | 'datetime' | 'list_of_strings' | 'list_of_integers' | 'list_of_any' | 'list_of_submodels' | 'dict';
94
100
  /** Nice, human readable title of the attribute */
95
- title?: string;
96
- description?: string;
101
+ title?: string | null;
102
+ description?: string | null;
97
103
  /** Example value of the field. */
98
104
  example?: any;
99
105
  /** Default value for the attribute. Do not set for list types. */
100
106
  default?: any;
101
- gt?: number | number;
102
- ge?: number | number;
103
- lt?: number | number;
104
- le?: number | number;
105
- minLength?: number;
106
- maxLength?: number;
107
+ gt?: number | number | null;
108
+ ge?: number | number | null;
109
+ lt?: number | number | null;
110
+ le?: number | number | null;
111
+ minLength?: number | null;
112
+ maxLength?: number | null;
107
113
  /** Minimum number of items in list type. */
108
- minItems?: number;
114
+ minItems?: number | null;
109
115
  /** Only for list types. Maximum number of items in the list. */
110
- maxItems?: number;
116
+ maxItems?: number | null;
111
117
  /** Only for string types. The value must match this regex. */
112
- regex?: string;
118
+ regex?: string | null;
113
119
  /** List of enum items used for displaying select widgets */
114
- enum?: EnumItem_3[];
120
+ enum?: EnumItem_3[] | null;
115
121
  /** Name of the function that provides enum values dynamically. */
116
- enumResolver?: string;
122
+ enumResolver?: string | null;
117
123
  /** Settings passed to the enum resolver function. */
118
- enumResolverSettings?: object;
124
+ enumResolverSettings?: {
125
+ [key: string]: any;
126
+ } | null;
119
127
  /** Inherit the attribute value from the parent entity. */
120
128
  inherit?: boolean;
121
129
  /** Specific widget style this field should use. */
122
- widget?: string;
130
+ widget?: string | null;
123
131
  /** Any additional config specific for the widget style.(Date formats, precision etc.) */
124
- widgetSettings?: object;
132
+ widgetSettings?: {
133
+ [key: string]: any;
134
+ } | null;
125
135
  };
126
136
 
127
137
  declare type AttributeModel = {
@@ -262,6 +272,13 @@ export declare const clearAccessToken: () => void;
262
272
 
263
273
  export declare const clearActiveEntities: (key: string) => void;
264
274
 
275
+ /**
276
+ * Settings stored in a view, per page (`viewType`).
277
+ *
278
+ * The backend treats `settings` as a free-form object (`GenericViewModel`), so the shape of each
279
+ * page's settings is owned here and is not part of the generated API types. Keep these in step
280
+ * with what the pages read and write.
281
+ */
265
282
  declare type ColumnItemModel = {
266
283
  name: string;
267
284
  visible?: boolean;
@@ -413,73 +430,81 @@ export declare type EnumContextParam = (typeof ENUM_CONTEXT_PARAMS)[number];
413
430
  declare type EnumItem = {
414
431
  value: string | number | number | boolean;
415
432
  label: string;
416
- description?: string;
417
- fulltext?: string[];
418
- group?: string;
433
+ description?: string | null;
434
+ fulltext?: string[] | null;
435
+ group?: string | null;
419
436
  /** Icon name (material symbol) or IconModel object */
420
- icon?: string | IconModel;
421
- color?: string;
422
- shortName?: string;
437
+ icon?: string | IconModel | null;
438
+ color?: string | null;
439
+ shortName?: string | null;
423
440
  /** Enum item is visible, but not selectable */
424
441
  disabled?: boolean;
425
442
  /** Message to show when the option is disabled */
426
- disabledMessage?: string;
443
+ disabledMessage?: string | null;
444
+ /** Enum item is not visible in the dropdown */
445
+ hidden?: boolean;
446
+ /** Extra badge labels to display next to the item */
447
+ badges?: string[] | null;
427
448
  };
428
449
 
429
450
  declare type EnumItem_2 = {
430
451
  value: string | number | number | boolean;
431
452
  label: string;
432
- description?: string;
433
- fulltext?: string[];
434
- group?: string;
453
+ description?: string | null;
454
+ fulltext?: string[] | null;
455
+ group?: string | null;
435
456
  /** Icon name (material symbol) or IconModel object */
436
- icon?: string | IconModel_2;
437
- color?: string;
438
- shortName?: string;
457
+ icon?: string | IconModel_2 | null;
458
+ color?: string | null;
459
+ shortName?: string | null;
439
460
  /** Enum item is visible, but not selectable */
440
461
  disabled?: boolean;
441
462
  /** Message to show when the option is disabled */
442
- disabledMessage?: string;
463
+ disabledMessage?: string | null;
443
464
  /** Enum item is not visible in the dropdown */
444
465
  hidden?: boolean;
445
466
  /** Extra badge labels to display next to the item */
446
- badges?: string[];
467
+ badges?: string[] | null;
447
468
  };
448
469
 
449
470
  declare type EnumItem_3 = {
450
471
  value: string | number | number | boolean;
451
472
  label: string;
452
- description?: string;
453
- fulltext?: string[];
454
- group?: string;
473
+ description?: string | null;
474
+ fulltext?: string[] | null;
475
+ group?: string | null;
455
476
  /** Icon name (material symbol) or IconModel object */
456
- icon?: string | IconModel_3;
457
- color?: string;
458
- shortName?: string;
477
+ icon?: string | IconModel_3 | null;
478
+ color?: string | null;
479
+ shortName?: string | null;
459
480
  /** Enum item is visible, but not selectable */
460
481
  disabled?: boolean;
461
482
  /** Message to show when the option is disabled */
462
- disabledMessage?: string;
463
- /** Enum item is not offered for selection, but resolves when already used */
483
+ disabledMessage?: string | null;
484
+ /** Enum item is not visible in the dropdown */
464
485
  hidden?: boolean;
486
+ /** Extra badge labels to display next to the item */
487
+ badges?: string[] | null;
465
488
  };
466
489
 
467
490
  declare type EnumItem_4 = {
468
491
  value: string | number | number | boolean;
469
492
  label: string;
470
- description?: string;
471
- fulltext?: string[];
472
- group?: string;
493
+ description?: string | null;
494
+ fulltext?: string[] | null;
495
+ group?: string | null;
473
496
  /** Icon name (material symbol) or IconModel object */
474
- icon?: string | IconModel_4;
475
- color?: string;
476
- shortName?: string;
497
+ icon?: string | IconModel_4 | null;
498
+ color?: string | null;
499
+ shortName?: string | null;
477
500
  /** Enum item is visible, but not selectable */
478
501
  disabled?: boolean;
479
502
  /** Message to show when the option is disabled */
480
- disabledMessage?: string;
481
- /** Enum item is not offered for selection, but resolves when already used */
503
+ disabledMessage?: string | null;
504
+ /** Enum item is not visible in the dropdown */
482
505
  hidden?: boolean;
506
+ /** Extra badge labels to display next to the item */
507
+ badges?: string[] | null;
483
508
  };
484
509
 
485
510
  declare type EnumSource = {
@@ -501,6 +526,8 @@ export declare const extractEntityHierarchyFromParents: (parents: string[], enti
501
526
  */
502
527
  export declare function extractVersionFromFilename(filename: string): number | null;
503
528
 
529
+ export declare const FILMSTRIP_ENTITY_TYPES: string[];
530
+
504
531
  export declare const filterBySearchQuery: <T>(items: T[], query: string, toHaystack: (item: T) => string) => T[];
505
532
 
506
533
  /**
@@ -513,7 +540,7 @@ export declare interface FolderHierarchyResult<T extends HierarchicalFolder> {
513
540
 
514
541
  declare type FolderType = {
515
542
  name: string;
516
- original_name?: string;
543
+ original_name?: string | null;
517
544
  shortName?: string;
518
545
  color?: string;
519
546
  icon?: string;
@@ -546,6 +573,21 @@ export declare const getCurrentPlatform: () => "other" | "windows" | "linux" | "
546
573
 
547
574
  export declare const getEntityColor: (entityType: string, subType: string | undefined, anatomy: IconAnatomy) => string | undefined;
548
575
 
576
+ /**
577
+ * Builds a hover-scrub filmstrip URL for a project entity.
578
+ *
579
+ * Returns `null` for entity types without filmstrips (products, workfiles, projects...)
580
+ * or when the required identity information is missing.
581
+ */
582
+ export declare const getEntityFilmstripUrl: ({ projectName, entityType, entityId, thumbnailHash, }: GetEntityFilmstripUrlParams) => string | null;
583
+
584
+ export declare interface GetEntityFilmstripUrlParams {
585
+ projectName?: string;
586
+ entityType?: string;
587
+ entityId?: string;
588
+ thumbnailHash?: string;
589
+ }
590
+
549
591
  export declare const getEntityIcon: (entityType: string, subType: string | undefined, anatomy: IconAnatomy) => string;
550
592
 
551
593
  export declare const getEntityId: () => string;
@@ -588,6 +630,9 @@ export declare const getEnumItemIcon: (icon: EnumItem_4["icon"]) => string | und
588
630
  */
589
631
  export declare const getErrorMessage: (error: unknown, prefix: string) => string;
590
632
 
633
+ /** Builds a hover-scrub filmstrip URL for a project file (e.g. a reviewable) */
634
+ export declare const getFileFilmstripUrl: (projectName?: string, fileId?: string) => string | null;
635
+
591
636
  /**
592
637
  * The `sortBy` of `buildSortArgs` for a query read forwards (`first`/`after`), where every
593
638
  * key carries its own direction.
@@ -742,41 +787,41 @@ export declare type IconAnatomy = Pick<Anatomy, 'folder_types' | 'task_types' |
742
787
  declare type IconModel = {
743
788
  type?: 'material-symbols' | 'url';
744
789
  /** The name of the icon (for type material-symbols) */
745
- name?: string;
790
+ name?: string | null;
746
791
  /** The color of the icon (for type material-symbols) */
747
- color?: string;
792
+ color?: string | null;
748
793
  /** The URL of the icon (for type url) */
749
- url?: string;
794
+ url?: string | null;
750
795
  };
751
796
 
752
797
  declare type IconModel_2 = {
753
798
  type?: 'material-symbols' | 'url';
754
799
  /** The name of the icon (for type material-symbols) */
755
- name?: string;
800
+ name?: string | null;
756
801
  /** The color of the icon (for type material-symbols) */
757
- color?: string;
802
+ color?: string | null;
758
803
  /** The URL of the icon (for type url) */
759
- url?: string;
804
+ url?: string | null;
760
805
  };
761
806
 
762
807
  declare type IconModel_3 = {
763
808
  type?: 'material-symbols' | 'url';
764
809
  /** The name of the icon (for type material-symbols) */
765
- name?: string;
810
+ name?: string | null;
766
811
  /** The color of the icon (for type material-symbols) */
767
- color?: string;
812
+ color?: string | null;
768
813
  /** The URL of the icon (for type url) */
769
- url?: string;
814
+ url?: string | null;
770
815
  };
771
816
 
772
817
  declare type IconModel_4 = {
773
818
  type?: 'material-symbols' | 'url';
774
819
  /** The name of the icon (for type material-symbols) */
775
- name?: string;
820
+ name?: string | null;
776
821
  /** The color of the icon (for type material-symbols) */
777
- color?: string;
822
+ color?: string | null;
778
823
  /** The URL of the icon (for type url) */
779
- url?: string;
824
+ url?: string | null;
780
825
  };
781
826
 
782
827
  export declare const isEnumContextParam: (name: string) => name is EnumContextParam;
@@ -797,7 +842,7 @@ declare type LinkType = {
797
842
  link_type: string;
798
843
  input_type: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
799
844
  output_type: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
800
- color?: string;
845
+ color?: string | null;
801
846
  style?: 'solid' | 'dashed';
802
847
  };
803
848
 
@@ -914,29 +959,6 @@ export declare interface ProductCreationData {
914
959
  productBaseType?: string;
915
960
  }
916
961
 
917
- declare type ProjectAttribModel = {
918
- priority?: 'urgent' | 'high' | 'normal' | 'low';
919
- /** Frame rate */
920
- fps?: number;
921
- /** Horizontal resolution */
922
- resolutionWidth?: number;
923
- /** Vertical resolution */
924
- resolutionHeight?: number;
925
- pixelAspect?: number;
926
- clipIn?: number;
927
- clipOut?: number;
928
- frameStart?: number;
929
- frameEnd?: number;
930
- handleStart?: number;
931
- handleEnd?: number;
932
- /** Date and time when the project or task or asset was started */
933
- startDate?: string;
934
- /** Deadline date and time */
935
- endDate?: string;
936
- /** Textual description of the entity */
937
- description?: string;
938
- };
939
-
940
962
  declare type ProjectLike = {
941
963
  name: string;
942
964
  label?: string | null;
@@ -966,9 +988,9 @@ declare type QueryCondition = {
966
988
  /** Path to the key separated by slashes */
967
989
  key: string;
968
990
  /** Value to compare against */
969
- value?: string | number | number | boolean | string[] | number[] | number[];
970
- /** Comparison operator */
971
- operator?: 'eq' | 'like' | 'notlike' | 'lt' | 'gt' | 'lte' | 'gte' | 'ne' | 'isnull' | 'notnull' | 'in' | 'notin' | 'includes' | 'excludes' | 'includesall' | 'excludesall' | 'includesany' | 'excludesany';
991
+ value?: string | number | number | boolean | string[] | number[] | number[] | null;
992
+ /** 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. */
993
+ operator?: 'eq' | 'like' | 'notlike' | 're' | 'lt' | 'gt' | 'lte' | 'gte' | 'ne' | 'isnull' | 'notnull' | 'in' | 'notin' | 'includes' | 'excludes' | 'includesall' | 'excludesall' | 'includesany' | 'excludesany';
972
994
  };
973
995
 
974
996
  declare type QueryFilter = {
@@ -1103,13 +1125,13 @@ export declare const STARTUP_DELAY = 3000;
1103
1125
 
1104
1126
  declare type Status = {
1105
1127
  name: string;
1106
- original_name?: string;
1128
+ original_name?: string | null;
1107
1129
  shortName?: string;
1108
1130
  state?: 'not_started' | 'in_progress' | 'done' | 'blocked';
1109
1131
  icon?: string;
1110
1132
  color?: string;
1111
1133
  /** Limit the status to specific entity types. */
1112
- scope?: string[];
1134
+ scope?: string[] | null;
1113
1135
  };
1114
1136
 
1115
1137
  export declare const storeAccessToken: (accessToken: string) => void;
@@ -1138,13 +1160,13 @@ declare interface TableGroupBy {
1138
1160
 
1139
1161
  declare type Tag = {
1140
1162
  name: string;
1141
- original_name?: string;
1163
+ original_name?: string | null;
1142
1164
  color?: string;
1143
1165
  };
1144
1166
 
1145
1167
  declare type TaskType = {
1146
1168
  name: string;
1147
- original_name?: string;
1169
+ original_name?: string | null;
1148
1170
  shortName?: string;
1149
1171
  color?: string;
1150
1172
  icon?: string;
@@ -1186,24 +1208,23 @@ export declare const URL_PARAM_ID = "uri";
1186
1208
 
1187
1209
  export declare const useActiveEntities: () => ActiveEntity[];
1188
1210
 
1189
- declare type UserAttribModel = {
1190
- fullName?: string;
1191
- email?: string;
1192
- avatarUrl?: string;
1193
- developerMode?: boolean;
1194
- };
1195
-
1196
1211
  /** Register entities for as long as the calling component is mounted. */
1197
1212
  export declare const useRegisterActiveEntities: (entities: ActiveEntity[] | undefined, priority?: number) => void;
1198
1213
 
1199
1214
  declare type UserModel = {
1200
- /** Name is an unique id of the {entity_name} */
1215
+ /** Unique name of the user */
1201
1216
  name: string;
1202
- uiExposureLevel?: number;
1203
- attrib?: UserAttribModel;
1204
- data?: Record<string, any>;
1205
- /** Whether the user is active */
1217
+ uiExposureLevel?: number | null;
1218
+ /** Attribute values of the entity */
1219
+ attrib?: {
1220
+ [key: string]: any;
1221
+ };
1222
+ data?: {
1223
+ [key: string]: any;
1224
+ };
1225
+ /** Whether the entity is active */
1206
1226
  active?: boolean;
1227
+ /** List of attributes explicitly set on the entity itself (not inherited) */
1207
1228
  ownAttrib?: string[];
1208
1229
  /** Time of creation */
1209
1230
  createdAt?: string;