@ynput/ayon-frontend-shared 0.2.13 → 0.2.14

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 (150) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -0
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +1 -0
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/Slicer.cjs.js +2 -0
  6. package/dist/Slicer.cjs.js.map +1 -1
  7. package/dist/Slicer.es.js +3 -1
  8. package/dist/Slicer.es.js.map +1 -1
  9. package/dist/_virtual/index.cjs10.js +4 -4
  10. package/dist/_virtual/index.cjs4.js +4 -4
  11. package/dist/_virtual/index.cjs5.js +4 -4
  12. package/dist/_virtual/index.cjs6.js +2 -2
  13. package/dist/_virtual/index.cjs7.js +2 -2
  14. package/dist/_virtual/index.cjs8.js +4 -4
  15. package/dist/_virtual/index.cjs9.js +4 -4
  16. package/dist/_virtual/index.es10.js +4 -4
  17. package/dist/_virtual/index.es4.js +4 -4
  18. package/dist/_virtual/index.es5.js +4 -4
  19. package/dist/_virtual/index.es6.js +2 -2
  20. package/dist/_virtual/index.es7.js +2 -2
  21. package/dist/_virtual/index.es8.js +4 -4
  22. package/dist/_virtual/index.es9.js +4 -4
  23. package/dist/components.cjs.js +6 -0
  24. package/dist/components.cjs.js.map +1 -1
  25. package/dist/components.es.js +7 -1
  26. package/dist/components.es.js.map +1 -1
  27. package/dist/index.cjs.js +1 -0
  28. package/dist/index.cjs.js.map +1 -1
  29. package/dist/index.es.js +1 -0
  30. package/dist/index.es.js.map +1 -1
  31. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  32. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  33. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  34. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  35. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
  36. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  37. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  38. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  39. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  40. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  41. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  42. package/dist/node_modules/remove-accents/index.es.js +1 -1
  43. package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
  44. package/dist/node_modules/vfile/lib/index.es.js +1 -1
  45. package/dist/shared/src/api/generated/actions.cjs.js.map +1 -1
  46. package/dist/shared/src/api/generated/actions.es.js.map +1 -1
  47. package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
  48. package/dist/shared/src/api/generated/system.es.js.map +1 -1
  49. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js +1 -0
  50. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +1 -1
  51. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js +1 -0
  52. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +1 -1
  53. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -0
  54. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  55. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +1 -0
  56. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  57. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -0
  58. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  59. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +1 -0
  60. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  61. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -0
  62. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  63. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +1 -0
  64. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  65. package/dist/shared/src/components/SearchFilter/filterDates.cjs.js +167 -0
  66. package/dist/shared/src/components/SearchFilter/filterDates.cjs.js.map +1 -0
  67. package/dist/shared/src/components/SearchFilter/filterDates.es.js +167 -0
  68. package/dist/shared/src/components/SearchFilter/filterDates.es.js.map +1 -0
  69. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +548 -0
  70. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -0
  71. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +548 -0
  72. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -0
  73. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +19 -3
  74. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  75. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +20 -4
  76. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  77. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -0
  78. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  79. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +1 -0
  80. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  81. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -0
  82. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  83. package/dist/shared/src/containers/Actions/Actions.es.js +1 -0
  84. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  85. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -0
  86. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  87. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +1 -0
  88. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  89. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -0
  90. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  91. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +1 -0
  92. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  93. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -0
  94. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  95. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +1 -0
  96. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  97. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -0
  98. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  99. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +1 -0
  100. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  101. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -0
  102. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  103. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +1 -0
  104. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  105. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  106. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  107. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +1 -1
  108. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  109. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +4 -1
  110. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  111. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +4 -1
  112. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  113. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.cjs.js.map +1 -1
  114. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.es.js.map +1 -1
  115. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +21 -11
  116. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  117. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +21 -11
  118. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  119. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js +6 -0
  120. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js.map +1 -1
  121. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js +6 -0
  122. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.styled.es.js.map +1 -1
  123. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js +3 -3
  124. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js.map +1 -1
  125. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js +3 -3
  126. package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js.map +1 -1
  127. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.cjs.js +2 -1
  128. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.cjs.js.map +1 -1
  129. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.es.js +2 -1
  130. package/dist/shared/src/containers/Feed/helpers/mergeAnnotationAttachments.es.js.map +1 -1
  131. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -0
  132. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  133. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +1 -0
  134. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  135. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js +37 -0
  136. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js.map +1 -0
  137. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js +37 -0
  138. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js.map +1 -0
  139. package/dist/types/api/generated/actions.d.ts +1 -1
  140. package/dist/types/api/generated/system.d.ts +1 -0
  141. package/dist/types/components/SearchFilter/filterDates.d.ts +56 -0
  142. package/dist/types/components/SearchFilter/index.d.ts +2 -0
  143. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +30 -0
  144. package/dist/types/components/index.d.ts +1 -0
  145. package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.d.ts +1 -1
  146. package/dist/types/containers/Feed/components/CommentInput/hooks/useAnnotationsUpload.d.ts +1 -1
  147. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +4 -3
  148. package/dist/types/containers/Slicer/index.d.ts +1 -0
  149. package/dist/types/containers/Slicer/useFiltersWithHierarchy.d.ts +10 -0
  150. package/package.json +1 -1
@@ -31,11 +31,11 @@ const FilesGrid = ({
31
31
  name: file.name,
32
32
  mime: file.mime || file.type,
33
33
  size: file.size,
34
- src: file.isUnsavedAnnotation ? file.thumbnail : `/api/projects/${projectName}/files/${file.id}`,
35
- isUnsavedAnnotation: file.isUnsavedAnnotation,
34
+ src: file.unsavedAnnotation ? file.thumbnail : `/api/projects/${projectName}/files/${file.id}`,
35
+ unsavedAnnotation: file.unsavedAnnotation,
36
36
  savedAnnotation: file.annotation,
37
37
  progress: file.progress,
38
- onRemove: onRemove ? () => onRemove(file.id, file.name, file.isUnsavedAnnotation) : void 0,
38
+ onRemove: onRemove ? () => onRemove(file.id, file.name, !!file.unsavedAnnotation) : void 0,
39
39
  isCompact,
40
40
  isDownloadable,
41
41
  onExpand: () => handleExpand(index),
@@ -1 +1 @@
1
- {"version":3,"file":"FilesGrid.es.js","sources":["../../../../../../../src/containers/Feed/components/FilesGrid/FilesGrid.tsx"],"sourcesContent":["import * as Styled from './FilesGrid.styled'\nimport clsx from 'clsx'\nimport FileUploadCard from '../FileUploadCard'\nimport { isFilePreviewable } from '../FileUploadPreview'\nimport { useCallback } from 'react'\n\nexport interface FilesGridProps {\n files?: any[]\n activityId?: string\n isCompact?: boolean\n onRemove?: (id: string, name: string, isUnsavedAnnotation: boolean) => void\n projectName: string\n isDownloadable?: boolean\n onExpand?: (data: { files: any[]; index: number; activityId: string }) => void\n onAnnotationClick?: (file: any) => void\n [key: string]: any\n}\n\nconst FilesGrid: React.FC<FilesGridProps> = ({\n files = [],\n activityId,\n isCompact,\n onRemove,\n projectName,\n isDownloadable,\n onExpand,\n onAnnotationClick,\n ...props\n}) => {\n if (!files.length) return null\n\n const handleExpand = useCallback(\n (index: number) => {\n const filteredFiles = files.filter((file) => isFilePreviewable(file.mime, file.ext))\n const updatedIndex = filteredFiles.findIndex((file) => file.id === files[index].id)\n onExpand?.({ files: filteredFiles, index: updatedIndex, activityId: activityId || '' })\n },\n [onExpand],\n )\n\n return (\n <Styled.Grid className={clsx({ compact: isCompact })} {...props}>\n {files.map((file, index) => (\n <FileUploadCard\n key={index}\n id={file.id || file.name}\n name={file.name}\n mime={file.mime || file.type}\n size={file.size}\n src={\n file.isUnsavedAnnotation\n ? file.thumbnail\n : `/api/projects/${projectName}/files/${file.id}`\n }\n isUnsavedAnnotation={file.isUnsavedAnnotation}\n savedAnnotation={file.annotation}\n progress={file.progress}\n onRemove={\n onRemove ? () => onRemove(file.id, file.name, file.isUnsavedAnnotation) : undefined\n }\n isCompact={isCompact}\n isDownloadable={isDownloadable}\n onExpand={() => handleExpand(index)}\n onJumpTo={() => onAnnotationClick?.(file)}\n />\n ))}\n </Styled.Grid>\n )\n}\n\nexport default FilesGrid\n"],"names":["Styled.Grid","jsx"],"mappings":";;;;;;AAkBA,MAAM,YAAsC,CAAC;AAAA,EAC3C,QAAQ,CAAC;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACA,MAAA,CAAC,MAAM,OAAe,QAAA;AAE1B,QAAM,eAAe;AAAA,IACnB,CAAC,UAAkB;AACX,YAAA,gBAAgB,MAAM,OAAO,CAAC,SAAS,kBAAkB,KAAK,MAAM,KAAK,GAAG,CAAC;AAC7E,YAAA,eAAe,cAAc,UAAU,CAAC,SAAS,KAAK,OAAO,MAAM,KAAK,EAAE,EAAE;AACvE,2CAAA,EAAE,OAAO,eAAe,OAAO,cAAc,YAAY,cAAc;IACpF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,+CACGA,MAAA,EAAY,WAAW,KAAK,EAAE,SAAS,UAAU,CAAC,GAAI,GAAG,OACvD,gBAAM,IAAI,CAAC,MAAM,UAChBC,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,IAAI,KAAK,MAAM,KAAK;AAAA,MACpB,MAAM,KAAK;AAAA,MACX,MAAM,KAAK,QAAQ,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,KACE,KAAK,sBACD,KAAK,YACL,iBAAiB,WAAW,UAAU,KAAK,EAAE;AAAA,MAEnD,qBAAqB,KAAK;AAAA,MAC1B,iBAAiB,KAAK;AAAA,MACtB,UAAU,KAAK;AAAA,MACf,UACE,WAAW,MAAM,SAAS,KAAK,IAAI,KAAK,MAAM,KAAK,mBAAmB,IAAI;AAAA,MAE5E;AAAA,MACA;AAAA,MACA,UAAU,MAAM,aAAa,KAAK;AAAA,MAClC,UAAU,MAAM,uDAAoB;AAAA,IAAI;AAAA,IAnBnC;AAAA,EAqBR,CAAA,GACH;AAEJ;"}
1
+ {"version":3,"file":"FilesGrid.es.js","sources":["../../../../../../../src/containers/Feed/components/FilesGrid/FilesGrid.tsx"],"sourcesContent":["import * as Styled from './FilesGrid.styled'\nimport clsx from 'clsx'\nimport FileUploadCard from '../FileUploadCard'\nimport { isFilePreviewable } from '../FileUploadPreview'\nimport { useCallback } from 'react'\n\nexport interface FilesGridProps {\n files?: any[]\n activityId?: string\n isCompact?: boolean\n onRemove?: (id: string, name: string, isUnsavedAnnotation: boolean) => void\n projectName: string\n isDownloadable?: boolean\n onExpand?: (data: { files: any[]; index: number; activityId: string }) => void\n onAnnotationClick?: (file: any) => void\n [key: string]: any\n}\n\nconst FilesGrid: React.FC<FilesGridProps> = ({\n files = [],\n activityId,\n isCompact,\n onRemove,\n projectName,\n isDownloadable,\n onExpand,\n onAnnotationClick,\n ...props\n}) => {\n if (!files.length) return null\n\n const handleExpand = useCallback(\n (index: number) => {\n const filteredFiles = files.filter((file) => isFilePreviewable(file.mime, file.ext))\n const updatedIndex = filteredFiles.findIndex((file) => file.id === files[index].id)\n onExpand?.({ files: filteredFiles, index: updatedIndex, activityId: activityId || '' })\n },\n [onExpand],\n )\n\n return (\n <Styled.Grid className={clsx({ compact: isCompact })} {...props}>\n {files.map((file, index) => (\n <FileUploadCard\n key={index}\n id={file.id || file.name}\n name={file.name}\n mime={file.mime || file.type}\n size={file.size}\n src={\n file.unsavedAnnotation\n ? file.thumbnail\n : `/api/projects/${projectName}/files/${file.id}`\n }\n unsavedAnnotation={file.unsavedAnnotation}\n savedAnnotation={file.annotation}\n progress={file.progress}\n onRemove={\n onRemove ? () => onRemove(file.id, file.name, !!file.unsavedAnnotation) : undefined\n }\n isCompact={isCompact}\n isDownloadable={isDownloadable}\n onExpand={() => handleExpand(index)}\n onJumpTo={() => onAnnotationClick?.(file)}\n />\n ))}\n </Styled.Grid>\n )\n}\n\nexport default FilesGrid\n"],"names":["Styled.Grid","jsx"],"mappings":";;;;;;AAkBA,MAAM,YAAsC,CAAC;AAAA,EAC3C,QAAQ,CAAC;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACA,MAAA,CAAC,MAAM,OAAe,QAAA;AAE1B,QAAM,eAAe;AAAA,IACnB,CAAC,UAAkB;AACX,YAAA,gBAAgB,MAAM,OAAO,CAAC,SAAS,kBAAkB,KAAK,MAAM,KAAK,GAAG,CAAC;AAC7E,YAAA,eAAe,cAAc,UAAU,CAAC,SAAS,KAAK,OAAO,MAAM,KAAK,EAAE,EAAE;AACvE,2CAAA,EAAE,OAAO,eAAe,OAAO,cAAc,YAAY,cAAc;IACpF;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,+CACGA,MAAA,EAAY,WAAW,KAAK,EAAE,SAAS,UAAU,CAAC,GAAI,GAAG,OACvD,gBAAM,IAAI,CAAC,MAAM,UAChBC,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,IAAI,KAAK,MAAM,KAAK;AAAA,MACpB,MAAM,KAAK;AAAA,MACX,MAAM,KAAK,QAAQ,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,KACE,KAAK,oBACD,KAAK,YACL,iBAAiB,WAAW,UAAU,KAAK,EAAE;AAAA,MAEnD,mBAAmB,KAAK;AAAA,MACxB,iBAAiB,KAAK;AAAA,MACtB,UAAU,KAAK;AAAA,MACf,UACE,WAAW,MAAM,SAAS,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,KAAK,iBAAiB,IAAI;AAAA,MAE5E;AAAA,MACA;AAAA,MACA,UAAU,MAAM,aAAa,KAAK;AAAA,MAClC,UAAU,MAAM,uDAAoB;AAAA,IAAI;AAAA,IAnBnC;AAAA,EAqBR,CAAA,GACH;AAEJ;"}
@@ -5,8 +5,9 @@ const mergeAnnotationAttachments = (activities) => {
5
5
  if (activity.activityType !== "comment" || !((_a = activity.activityData) == null ? void 0 : _a.annotations)) return activity;
6
6
  const files = activity.files.map((file) => {
7
7
  const annotation = activity.activityData.annotations.find(
8
- (annotation2) => annotation2.composite === file.id || annotation2.transparent === file.id
8
+ (annotation2) => (annotation2 == null ? void 0 : annotation2.composite) === file.id || (annotation2 == null ? void 0 : annotation2.transparent) === file.id
9
9
  );
10
+ if (!annotation) return file;
10
11
  if (annotation.transparent === file.id) return null;
11
12
  return { ...file, annotation };
12
13
  }).filter(Boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"mergeAnnotationAttachments.cjs.js","sources":["../../../../../../src/containers/Feed/helpers/mergeAnnotationAttachments.ts"],"sourcesContent":["import { SavedAnnotationMetadata } from '../../index'\n\nexport default (activities: any[]) => {\n return activities.map((activity) => {\n if (activity.activityType !== 'comment' || !activity.activityData?.annotations) return activity\n\n const files = activity.files\n .map((file: any) => {\n // look for an annotation that is using this file\n const annotation = activity.activityData.annotations.find(\n (annotation: SavedAnnotationMetadata) =>\n annotation.composite === file.id || annotation.transparent === file.id,\n )\n\n // if the file is the transparent version of the annotation, ignore it\n if (annotation.transparent === file.id) return null\n\n return { ...file, annotation }\n })\n .filter(Boolean)\n\n const newActivity = { ...activity, files }\n return newActivity\n })\n}\n"],"names":["annotation"],"mappings":";AAEA,MAAe,6BAAA,CAAC,eAAsB;AAC7B,SAAA,WAAW,IAAI,CAAC,aAAa;;AAClC,QAAI,SAAS,iBAAiB,aAAa,GAAC,cAAS,iBAAT,mBAAuB,aAAoB,QAAA;AAEvF,UAAM,QAAQ,SAAS,MACpB,IAAI,CAAC,SAAc;AAEZ,YAAA,aAAa,SAAS,aAAa,YAAY;AAAA,QACnD,CAACA,gBACCA,YAAW,cAAc,KAAK,MAAMA,YAAW,gBAAgB,KAAK;AAAA,MACxE;AAGA,UAAI,WAAW,gBAAgB,KAAK,GAAW,QAAA;AAExC,aAAA,EAAE,GAAG,MAAM,WAAW;AAAA,IAAA,CAC9B,EACA,OAAO,OAAO;AAEjB,UAAM,cAAc,EAAE,GAAG,UAAU,MAAM;AAClC,WAAA;AAAA,EAAA,CACR;AACH;;"}
1
+ {"version":3,"file":"mergeAnnotationAttachments.cjs.js","sources":["../../../../../../src/containers/Feed/helpers/mergeAnnotationAttachments.ts"],"sourcesContent":["import { SavedAnnotationMetadata } from '../../index'\n\nexport default (activities: any[]) => {\n return activities.map((activity) => {\n if (activity.activityType !== 'comment' || !activity.activityData?.annotations) return activity\n\n const files = activity.files\n .map((file: any) => {\n // look for an annotation that is using this file\n const annotation = activity.activityData.annotations.find(\n (annotation: SavedAnnotationMetadata) =>\n annotation?.composite === file.id || annotation?.transparent === file.id,\n )\n\n if (!annotation) return file\n\n // if the file is the transparent version of the annotation, ignore it\n if (annotation.transparent === file.id) return null\n\n return { ...file, annotation }\n })\n .filter(Boolean)\n\n const newActivity = { ...activity, files }\n return newActivity\n })\n}\n"],"names":["annotation"],"mappings":";AAEA,MAAe,6BAAA,CAAC,eAAsB;AAC7B,SAAA,WAAW,IAAI,CAAC,aAAa;;AAClC,QAAI,SAAS,iBAAiB,aAAa,GAAC,cAAS,iBAAT,mBAAuB,aAAoB,QAAA;AAEvF,UAAM,QAAQ,SAAS,MACpB,IAAI,CAAC,SAAc;AAEZ,YAAA,aAAa,SAAS,aAAa,YAAY;AAAA,QACnD,CAACA,iBACCA,2CAAY,eAAc,KAAK,OAAMA,2CAAY,iBAAgB,KAAK;AAAA,MAC1E;AAEI,UAAA,CAAC,WAAmB,QAAA;AAGxB,UAAI,WAAW,gBAAgB,KAAK,GAAW,QAAA;AAExC,aAAA,EAAE,GAAG,MAAM,WAAW;AAAA,IAAA,CAC9B,EACA,OAAO,OAAO;AAEjB,UAAM,cAAc,EAAE,GAAG,UAAU,MAAM;AAClC,WAAA;AAAA,EAAA,CACR;AACH;;"}
@@ -4,8 +4,9 @@ const mergeAnnotationAttachments = (activities) => {
4
4
  if (activity.activityType !== "comment" || !((_a = activity.activityData) == null ? void 0 : _a.annotations)) return activity;
5
5
  const files = activity.files.map((file) => {
6
6
  const annotation = activity.activityData.annotations.find(
7
- (annotation2) => annotation2.composite === file.id || annotation2.transparent === file.id
7
+ (annotation2) => (annotation2 == null ? void 0 : annotation2.composite) === file.id || (annotation2 == null ? void 0 : annotation2.transparent) === file.id
8
8
  );
9
+ if (!annotation) return file;
9
10
  if (annotation.transparent === file.id) return null;
10
11
  return { ...file, annotation };
11
12
  }).filter(Boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"mergeAnnotationAttachments.es.js","sources":["../../../../../../src/containers/Feed/helpers/mergeAnnotationAttachments.ts"],"sourcesContent":["import { SavedAnnotationMetadata } from '../../index'\n\nexport default (activities: any[]) => {\n return activities.map((activity) => {\n if (activity.activityType !== 'comment' || !activity.activityData?.annotations) return activity\n\n const files = activity.files\n .map((file: any) => {\n // look for an annotation that is using this file\n const annotation = activity.activityData.annotations.find(\n (annotation: SavedAnnotationMetadata) =>\n annotation.composite === file.id || annotation.transparent === file.id,\n )\n\n // if the file is the transparent version of the annotation, ignore it\n if (annotation.transparent === file.id) return null\n\n return { ...file, annotation }\n })\n .filter(Boolean)\n\n const newActivity = { ...activity, files }\n return newActivity\n })\n}\n"],"names":["annotation"],"mappings":"AAEA,MAAe,6BAAA,CAAC,eAAsB;AAC7B,SAAA,WAAW,IAAI,CAAC,aAAa;AADtC;AAEI,QAAI,SAAS,iBAAiB,aAAa,GAAC,cAAS,iBAAT,mBAAuB,aAAoB,QAAA;AAEvF,UAAM,QAAQ,SAAS,MACpB,IAAI,CAAC,SAAc;AAEZ,YAAA,aAAa,SAAS,aAAa,YAAY;AAAA,QACnD,CAACA,gBACCA,YAAW,cAAc,KAAK,MAAMA,YAAW,gBAAgB,KAAK;AAAA,MACxE;AAGA,UAAI,WAAW,gBAAgB,KAAK,GAAW,QAAA;AAExC,aAAA,EAAE,GAAG,MAAM,WAAW;AAAA,IAAA,CAC9B,EACA,OAAO,OAAO;AAEjB,UAAM,cAAc,EAAE,GAAG,UAAU,MAAM;AAClC,WAAA;AAAA,EAAA,CACR;AACH;"}
1
+ {"version":3,"file":"mergeAnnotationAttachments.es.js","sources":["../../../../../../src/containers/Feed/helpers/mergeAnnotationAttachments.ts"],"sourcesContent":["import { SavedAnnotationMetadata } from '../../index'\n\nexport default (activities: any[]) => {\n return activities.map((activity) => {\n if (activity.activityType !== 'comment' || !activity.activityData?.annotations) return activity\n\n const files = activity.files\n .map((file: any) => {\n // look for an annotation that is using this file\n const annotation = activity.activityData.annotations.find(\n (annotation: SavedAnnotationMetadata) =>\n annotation?.composite === file.id || annotation?.transparent === file.id,\n )\n\n if (!annotation) return file\n\n // if the file is the transparent version of the annotation, ignore it\n if (annotation.transparent === file.id) return null\n\n return { ...file, annotation }\n })\n .filter(Boolean)\n\n const newActivity = { ...activity, files }\n return newActivity\n })\n}\n"],"names":["annotation"],"mappings":"AAEA,MAAe,6BAAA,CAAC,eAAsB;AAC7B,SAAA,WAAW,IAAI,CAAC,aAAa;AADtC;AAEI,QAAI,SAAS,iBAAiB,aAAa,GAAC,cAAS,iBAAT,mBAAuB,aAAoB,QAAA;AAEvF,UAAM,QAAQ,SAAS,MACpB,IAAI,CAAC,SAAc;AAEZ,YAAA,aAAa,SAAS,aAAa,YAAY;AAAA,QACnD,CAACA,iBACCA,2CAAY,eAAc,KAAK,OAAMA,2CAAY,iBAAgB,KAAK;AAAA,MAC1E;AAEI,UAAA,CAAC,WAAmB,QAAA;AAGxB,UAAI,WAAW,gBAAgB,KAAK,GAAW,QAAA;AAExC,aAAA,EAAE,GAAG,MAAM,WAAW;AAAA,IAAA,CAC9B,EACA,OAAO,OAAO;AAEjB,UAAM,cAAc,EAAE,GAAG,UAAU,MAAM;AAClC,WAAA;AAAA,EAAA,CACR;AACH;"}
@@ -177,6 +177,7 @@ require("../../components/SettingsPanel/SettingsPanel.cjs.js");
177
177
  require("../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");
178
178
  require("../../components/AttributeEditor/components/MinMaxField.cjs.js");
179
179
  require("../../components/EnumEditor/EnumEditor.styled.cjs.js");
180
+ require("../../components/SearchFilter/filterDates.cjs.js");
180
181
  const columns = [
181
182
  {
182
183
  field: "name",
@@ -1 +1 @@
1
- {"version":3,"file":"RepresentationsList.cjs.js","sources":["../../../../../src/containers/RepresentationsList/RepresentationsList.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { TablePanel } from '@ynput/ayon-react-components'\n\nimport { TreeTable } from 'primereact/treetable'\nimport { Column } from 'primereact/column'\n\nimport { groupResult } from '@shared/util'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { DetailsDialog } from '@shared/components'\nimport versionsToRepresentations from './versionsToRepresentations'\nimport { DetailsPanelEntityData } from '@shared/api'\n\nconst columns = [\n {\n field: 'name',\n header: 'Name',\n width: 90,\n expander: true,\n },\n {\n field: 'folderName',\n header: 'Folder',\n width: 130,\n },\n {\n field: 'productName',\n header: 'Product',\n width: 130,\n },\n {\n field: 'Product type',\n header: 'productType',\n width: 110,\n },\n]\n\ntype Props = {\n entities: DetailsPanelEntityData[]\n}\n\nexport const RepresentationsList = ({ entities = [] }: Props) => {\n // merge all entities data into one array of entities\n const representations = useMemo(() => versionsToRepresentations(entities) || [], [entities])\n\n const [showDetail, setShowDetail] = useState<false | string>(false)\n const showDetailProjectName = representations.find((rep) => rep.id === showDetail)?.projectName\n\n const [selected, setSelected] = useState<string[]>([])\n\n const data = useMemo(() => {\n // @ts-expect-error - groupResult is not typed\n return groupResult(representations, 'name')\n }, [representations])\n\n const onRepSelectionChange = (entityId: string) => {\n // set focused state\n setSelected([entityId])\n }\n\n const onRowClick = (e: any) => {\n onRepSelectionChange(e.node.data.id)\n }\n\n const ctxMenuItems = (id: string) => [\n {\n label: 'Representation detail',\n command: () => setShowDetail(id),\n icon: 'database',\n },\n ]\n\n const [ctxMenuShow] = useCreateContextMenu([])\n\n const handleContextMenu = (e: any) => {\n const id = e.node.data.id\n\n if (id) {\n // update focused representations\n onRepSelectionChange(id)\n // open context menu\n ctxMenuShow(e.originalEvent, ctxMenuItems(id))\n }\n }\n\n return (\n <>\n <TablePanel>\n <TreeTable\n scrollable\n scrollHeight=\"100%\"\n value={data}\n emptyMessage=\"No representation found\"\n selectionMode=\"single\"\n selectionKeys={selected[0]}\n onRowClick={onRowClick}\n onContextMenu={handleContextMenu}\n >\n {columns.map((col) => {\n return (\n <Column\n key={col.field}\n field={col.field}\n header={col.header}\n expander={col.expander}\n style={{ width: col.width }}\n />\n )\n })}\n </TreeTable>\n </TablePanel>\n\n {showDetail && (\n <DetailsDialog\n projectName={showDetailProjectName}\n entityType={'representation'}\n entityIds={[showDetail]}\n visible={!!showDetail}\n onHide={() => setShowDetail(false)}\n />\n )}\n </>\n )\n}\n"],"names":["useMemo","useState","groupResult","useCreateContextMenu","jsxs","Fragment","jsx","TablePanel","TreeTable","Column","DetailsDialog"],"mappings":"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"}
1
+ {"version":3,"file":"RepresentationsList.cjs.js","sources":["../../../../../src/containers/RepresentationsList/RepresentationsList.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { TablePanel } from '@ynput/ayon-react-components'\n\nimport { TreeTable } from 'primereact/treetable'\nimport { Column } from 'primereact/column'\n\nimport { groupResult } from '@shared/util'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { DetailsDialog } from '@shared/components'\nimport versionsToRepresentations from './versionsToRepresentations'\nimport { DetailsPanelEntityData } from '@shared/api'\n\nconst columns = [\n {\n field: 'name',\n header: 'Name',\n width: 90,\n expander: true,\n },\n {\n field: 'folderName',\n header: 'Folder',\n width: 130,\n },\n {\n field: 'productName',\n header: 'Product',\n width: 130,\n },\n {\n field: 'Product type',\n header: 'productType',\n width: 110,\n },\n]\n\ntype Props = {\n entities: DetailsPanelEntityData[]\n}\n\nexport const RepresentationsList = ({ entities = [] }: Props) => {\n // merge all entities data into one array of entities\n const representations = useMemo(() => versionsToRepresentations(entities) || [], [entities])\n\n const [showDetail, setShowDetail] = useState<false | string>(false)\n const showDetailProjectName = representations.find((rep) => rep.id === showDetail)?.projectName\n\n const [selected, setSelected] = useState<string[]>([])\n\n const data = useMemo(() => {\n // @ts-expect-error - groupResult is not typed\n return groupResult(representations, 'name')\n }, [representations])\n\n const onRepSelectionChange = (entityId: string) => {\n // set focused state\n setSelected([entityId])\n }\n\n const onRowClick = (e: any) => {\n onRepSelectionChange(e.node.data.id)\n }\n\n const ctxMenuItems = (id: string) => [\n {\n label: 'Representation detail',\n command: () => setShowDetail(id),\n icon: 'database',\n },\n ]\n\n const [ctxMenuShow] = useCreateContextMenu([])\n\n const handleContextMenu = (e: any) => {\n const id = e.node.data.id\n\n if (id) {\n // update focused representations\n onRepSelectionChange(id)\n // open context menu\n ctxMenuShow(e.originalEvent, ctxMenuItems(id))\n }\n }\n\n return (\n <>\n <TablePanel>\n <TreeTable\n scrollable\n scrollHeight=\"100%\"\n value={data}\n emptyMessage=\"No representation found\"\n selectionMode=\"single\"\n selectionKeys={selected[0]}\n onRowClick={onRowClick}\n onContextMenu={handleContextMenu}\n >\n {columns.map((col) => {\n return (\n <Column\n key={col.field}\n field={col.field}\n header={col.header}\n expander={col.expander}\n style={{ width: col.width }}\n />\n )\n })}\n </TreeTable>\n </TablePanel>\n\n {showDetail && (\n <DetailsDialog\n projectName={showDetailProjectName}\n entityType={'representation'}\n entityIds={[showDetail]}\n visible={!!showDetail}\n onHide={() => setShowDetail(false)}\n />\n )}\n </>\n )\n}\n"],"names":["useMemo","useState","groupResult","useCreateContextMenu","jsxs","Fragment","jsx","TablePanel","TreeTable","Column","DetailsDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,UAAU;AAAA,EACd;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX;AAMO,MAAM,sBAAsB,CAAC,EAAE,WAAW,CAAA,QAAgB;;AAEzD,QAAA,kBAAkBA,MAAQ,QAAA,MAAM,0BAA0B,QAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE3F,QAAM,CAAC,YAAY,aAAa,IAAIC,MAAAA,SAAyB,KAAK;AAC5D,QAAA,yBAAwB,qBAAgB,KAAK,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAnD,mBAAsD;AAEpF,QAAM,CAAC,UAAU,WAAW,IAAIA,MAAAA,SAAmB,CAAA,CAAE;AAE/C,QAAA,OAAOD,MAAAA,QAAQ,MAAM;AAElB,WAAAE,YAAA,YAAY,iBAAiB,MAAM;AAAA,EAAA,GACzC,CAAC,eAAe,CAAC;AAEd,QAAA,uBAAuB,CAAC,aAAqB;AAErC,gBAAA,CAAC,QAAQ,CAAC;AAAA,EACxB;AAEM,QAAA,aAAa,CAAC,MAAW;AACR,yBAAA,EAAE,KAAK,KAAK,EAAE;AAAA,EACrC;AAEM,QAAA,eAAe,CAAC,OAAe;AAAA,IACnC;AAAA,MACE,OAAO;AAAA,MACP,SAAS,MAAM,cAAc,EAAE;AAAA,MAC/B,MAAM;AAAA,IAAA;AAAA,EAEV;AAEA,QAAM,CAAC,WAAW,IAAIC,qBAAA,qBAAqB,EAAE;AAEvC,QAAA,oBAAoB,CAAC,MAAW;AAC9B,UAAA,KAAK,EAAE,KAAK,KAAK;AAEvB,QAAI,IAAI;AAEN,2BAAqB,EAAE;AAEvB,kBAAY,EAAE,eAAe,aAAa,EAAE,CAAC;AAAA,IAAA;AAAA,EAEjD;AAEA,SAEIC,2BAAA,kBAAA,KAAAC,uCAAA,EAAA,UAAA;AAAA,IAAAC,iDAACC,oBAAAA,YACC,EAAA,UAAAD,2BAAA,kBAAA;AAAA,MAACE,cAAA;AAAA,MAAA;AAAA,QACC,YAAU;AAAA,QACV,cAAa;AAAA,QACb,OAAO;AAAA,QACP,cAAa;AAAA,QACb,eAAc;AAAA,QACd,eAAe,SAAS,CAAC;AAAA,QACzB;AAAA,QACA,eAAe;AAAA,QAEd,UAAA,QAAQ,IAAI,CAAC,QAAQ;AAElB,iBAAAF,2BAAA,kBAAA;AAAA,YAACG,WAAA;AAAA,YAAA;AAAA,cAEC,OAAO,IAAI;AAAA,cACX,QAAQ,IAAI;AAAA,cACZ,UAAU,IAAI;AAAA,cACd,OAAO,EAAE,OAAO,IAAI,MAAM;AAAA,YAAA;AAAA,YAJrB,IAAI;AAAA,UAKX;AAAA,QAEH,CAAA;AAAA,MAAA;AAAA,IAAA,GAEL;AAAA,IAEC,cACCH,2BAAA,kBAAA;AAAA,MAACI,cAAA;AAAA,MAAA;AAAA,QACC,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW,CAAC,UAAU;AAAA,QACtB,SAAS,CAAC,CAAC;AAAA,QACX,QAAQ,MAAM,cAAc,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACnC,GAEJ;AAEJ;;"}
@@ -175,6 +175,7 @@ import "../../components/SettingsPanel/SettingsPanel.es.js";
175
175
  import "../../components/SettingsPanel/SettingsPanelItemTemplate.es.js";
176
176
  import "../../components/AttributeEditor/components/MinMaxField.es.js";
177
177
  import "../../components/EnumEditor/EnumEditor.styled.es.js";
178
+ import "../../components/SearchFilter/filterDates.es.js";
178
179
  const columns = [
179
180
  {
180
181
  field: "name",
@@ -1 +1 @@
1
- {"version":3,"file":"RepresentationsList.es.js","sources":["../../../../../src/containers/RepresentationsList/RepresentationsList.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { TablePanel } from '@ynput/ayon-react-components'\n\nimport { TreeTable } from 'primereact/treetable'\nimport { Column } from 'primereact/column'\n\nimport { groupResult } from '@shared/util'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { DetailsDialog } from '@shared/components'\nimport versionsToRepresentations from './versionsToRepresentations'\nimport { DetailsPanelEntityData } from '@shared/api'\n\nconst columns = [\n {\n field: 'name',\n header: 'Name',\n width: 90,\n expander: true,\n },\n {\n field: 'folderName',\n header: 'Folder',\n width: 130,\n },\n {\n field: 'productName',\n header: 'Product',\n width: 130,\n },\n {\n field: 'Product type',\n header: 'productType',\n width: 110,\n },\n]\n\ntype Props = {\n entities: DetailsPanelEntityData[]\n}\n\nexport const RepresentationsList = ({ entities = [] }: Props) => {\n // merge all entities data into one array of entities\n const representations = useMemo(() => versionsToRepresentations(entities) || [], [entities])\n\n const [showDetail, setShowDetail] = useState<false | string>(false)\n const showDetailProjectName = representations.find((rep) => rep.id === showDetail)?.projectName\n\n const [selected, setSelected] = useState<string[]>([])\n\n const data = useMemo(() => {\n // @ts-expect-error - groupResult is not typed\n return groupResult(representations, 'name')\n }, [representations])\n\n const onRepSelectionChange = (entityId: string) => {\n // set focused state\n setSelected([entityId])\n }\n\n const onRowClick = (e: any) => {\n onRepSelectionChange(e.node.data.id)\n }\n\n const ctxMenuItems = (id: string) => [\n {\n label: 'Representation detail',\n command: () => setShowDetail(id),\n icon: 'database',\n },\n ]\n\n const [ctxMenuShow] = useCreateContextMenu([])\n\n const handleContextMenu = (e: any) => {\n const id = e.node.data.id\n\n if (id) {\n // update focused representations\n onRepSelectionChange(id)\n // open context menu\n ctxMenuShow(e.originalEvent, ctxMenuItems(id))\n }\n }\n\n return (\n <>\n <TablePanel>\n <TreeTable\n scrollable\n scrollHeight=\"100%\"\n value={data}\n emptyMessage=\"No representation found\"\n selectionMode=\"single\"\n selectionKeys={selected[0]}\n onRowClick={onRowClick}\n onContextMenu={handleContextMenu}\n >\n {columns.map((col) => {\n return (\n <Column\n key={col.field}\n field={col.field}\n header={col.header}\n expander={col.expander}\n style={{ width: col.width }}\n />\n )\n })}\n </TreeTable>\n </TablePanel>\n\n {showDetail && (\n <DetailsDialog\n projectName={showDetailProjectName}\n entityType={'representation'}\n entityIds={[showDetail]}\n visible={!!showDetail}\n onHide={() => setShowDetail(false)}\n />\n )}\n </>\n )\n}\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,UAAU;AAAA,EACd;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX;AAMO,MAAM,sBAAsB,CAAC,EAAE,WAAW,CAAA,QAAgB;;AAEzD,QAAA,kBAAkB,QAAQ,MAAM,0BAA0B,QAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE3F,QAAM,CAAC,YAAY,aAAa,IAAI,SAAyB,KAAK;AAC5D,QAAA,yBAAwB,qBAAgB,KAAK,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAnD,mBAAsD;AAEpF,QAAM,CAAC,UAAU,WAAW,IAAI,SAAmB,CAAA,CAAE;AAE/C,QAAA,OAAO,QAAQ,MAAM;AAElB,WAAA,YAAY,iBAAiB,MAAM;AAAA,EAAA,GACzC,CAAC,eAAe,CAAC;AAEd,QAAA,uBAAuB,CAAC,aAAqB;AAErC,gBAAA,CAAC,QAAQ,CAAC;AAAA,EACxB;AAEM,QAAA,aAAa,CAAC,MAAW;AACR,yBAAA,EAAE,KAAK,KAAK,EAAE;AAAA,EACrC;AAEM,QAAA,eAAe,CAAC,OAAe;AAAA,IACnC;AAAA,MACE,OAAO;AAAA,MACP,SAAS,MAAM,cAAc,EAAE;AAAA,MAC/B,MAAM;AAAA,IAAA;AAAA,EAEV;AAEA,QAAM,CAAC,WAAW,IAAI,qBAAqB,EAAE;AAEvC,QAAA,oBAAoB,CAAC,MAAW;AAC9B,UAAA,KAAK,EAAE,KAAK,KAAK;AAEvB,QAAI,IAAI;AAEN,2BAAqB,EAAE;AAEvB,kBAAY,EAAE,eAAe,aAAa,EAAE,CAAC;AAAA,IAAA;AAAA,EAEjD;AAEA,SAEIA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,IAAAC,sCAAC,YACC,EAAA,UAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,YAAU;AAAA,QACV,cAAa;AAAA,QACb,OAAO;AAAA,QACP,cAAa;AAAA,QACb,eAAc;AAAA,QACd,eAAe,SAAS,CAAC;AAAA,QACzB;AAAA,QACA,eAAe;AAAA,QAEd,UAAA,QAAQ,IAAI,CAAC,QAAQ;AAElB,iBAAAA,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,OAAO,IAAI;AAAA,cACX,QAAQ,IAAI;AAAA,cACZ,UAAU,IAAI;AAAA,cACd,OAAO,EAAE,OAAO,IAAI,MAAM;AAAA,YAAA;AAAA,YAJrB,IAAI;AAAA,UAKX;AAAA,QAEH,CAAA;AAAA,MAAA;AAAA,IAAA,GAEL;AAAA,IAEC,cACCA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW,CAAC,UAAU;AAAA,QACtB,SAAS,CAAC,CAAC;AAAA,QACX,QAAQ,MAAM,cAAc,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACnC,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"RepresentationsList.es.js","sources":["../../../../../src/containers/RepresentationsList/RepresentationsList.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { TablePanel } from '@ynput/ayon-react-components'\n\nimport { TreeTable } from 'primereact/treetable'\nimport { Column } from 'primereact/column'\n\nimport { groupResult } from '@shared/util'\nimport { useCreateContextMenu } from '@shared/containers/ContextMenu'\nimport { DetailsDialog } from '@shared/components'\nimport versionsToRepresentations from './versionsToRepresentations'\nimport { DetailsPanelEntityData } from '@shared/api'\n\nconst columns = [\n {\n field: 'name',\n header: 'Name',\n width: 90,\n expander: true,\n },\n {\n field: 'folderName',\n header: 'Folder',\n width: 130,\n },\n {\n field: 'productName',\n header: 'Product',\n width: 130,\n },\n {\n field: 'Product type',\n header: 'productType',\n width: 110,\n },\n]\n\ntype Props = {\n entities: DetailsPanelEntityData[]\n}\n\nexport const RepresentationsList = ({ entities = [] }: Props) => {\n // merge all entities data into one array of entities\n const representations = useMemo(() => versionsToRepresentations(entities) || [], [entities])\n\n const [showDetail, setShowDetail] = useState<false | string>(false)\n const showDetailProjectName = representations.find((rep) => rep.id === showDetail)?.projectName\n\n const [selected, setSelected] = useState<string[]>([])\n\n const data = useMemo(() => {\n // @ts-expect-error - groupResult is not typed\n return groupResult(representations, 'name')\n }, [representations])\n\n const onRepSelectionChange = (entityId: string) => {\n // set focused state\n setSelected([entityId])\n }\n\n const onRowClick = (e: any) => {\n onRepSelectionChange(e.node.data.id)\n }\n\n const ctxMenuItems = (id: string) => [\n {\n label: 'Representation detail',\n command: () => setShowDetail(id),\n icon: 'database',\n },\n ]\n\n const [ctxMenuShow] = useCreateContextMenu([])\n\n const handleContextMenu = (e: any) => {\n const id = e.node.data.id\n\n if (id) {\n // update focused representations\n onRepSelectionChange(id)\n // open context menu\n ctxMenuShow(e.originalEvent, ctxMenuItems(id))\n }\n }\n\n return (\n <>\n <TablePanel>\n <TreeTable\n scrollable\n scrollHeight=\"100%\"\n value={data}\n emptyMessage=\"No representation found\"\n selectionMode=\"single\"\n selectionKeys={selected[0]}\n onRowClick={onRowClick}\n onContextMenu={handleContextMenu}\n >\n {columns.map((col) => {\n return (\n <Column\n key={col.field}\n field={col.field}\n header={col.header}\n expander={col.expander}\n style={{ width: col.width }}\n />\n )\n })}\n </TreeTable>\n </TablePanel>\n\n {showDetail && (\n <DetailsDialog\n projectName={showDetailProjectName}\n entityType={'representation'}\n entityIds={[showDetail]}\n visible={!!showDetail}\n onHide={() => setShowDetail(false)}\n />\n )}\n </>\n )\n}\n"],"names":["jsxs","Fragment","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,UAAU;AAAA,EACd;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX;AAMO,MAAM,sBAAsB,CAAC,EAAE,WAAW,CAAA,QAAgB;;AAEzD,QAAA,kBAAkB,QAAQ,MAAM,0BAA0B,QAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAE3F,QAAM,CAAC,YAAY,aAAa,IAAI,SAAyB,KAAK;AAC5D,QAAA,yBAAwB,qBAAgB,KAAK,CAAC,QAAQ,IAAI,OAAO,UAAU,MAAnD,mBAAsD;AAEpF,QAAM,CAAC,UAAU,WAAW,IAAI,SAAmB,CAAA,CAAE;AAE/C,QAAA,OAAO,QAAQ,MAAM;AAElB,WAAA,YAAY,iBAAiB,MAAM;AAAA,EAAA,GACzC,CAAC,eAAe,CAAC;AAEd,QAAA,uBAAuB,CAAC,aAAqB;AAErC,gBAAA,CAAC,QAAQ,CAAC;AAAA,EACxB;AAEM,QAAA,aAAa,CAAC,MAAW;AACR,yBAAA,EAAE,KAAK,KAAK,EAAE;AAAA,EACrC;AAEM,QAAA,eAAe,CAAC,OAAe;AAAA,IACnC;AAAA,MACE,OAAO;AAAA,MACP,SAAS,MAAM,cAAc,EAAE;AAAA,MAC/B,MAAM;AAAA,IAAA;AAAA,EAEV;AAEA,QAAM,CAAC,WAAW,IAAI,qBAAqB,EAAE;AAEvC,QAAA,oBAAoB,CAAC,MAAW;AAC9B,UAAA,KAAK,EAAE,KAAK,KAAK;AAEvB,QAAI,IAAI;AAEN,2BAAqB,EAAE;AAEvB,kBAAY,EAAE,eAAe,aAAa,EAAE,CAAC;AAAA,IAAA;AAAA,EAEjD;AAEA,SAEIA,kCAAA,KAAAC,4BAAA,EAAA,UAAA;AAAA,IAAAC,sCAAC,YACC,EAAA,UAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,YAAU;AAAA,QACV,cAAa;AAAA,QACb,OAAO;AAAA,QACP,cAAa;AAAA,QACb,eAAc;AAAA,QACd,eAAe,SAAS,CAAC;AAAA,QACzB;AAAA,QACA,eAAe;AAAA,QAEd,UAAA,QAAQ,IAAI,CAAC,QAAQ;AAElB,iBAAAA,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,OAAO,IAAI;AAAA,cACX,QAAQ,IAAI;AAAA,cACZ,UAAU,IAAI;AAAA,cACd,OAAO,EAAE,OAAO,IAAI,MAAM;AAAA,YAAA;AAAA,YAJrB,IAAI;AAAA,UAKX;AAAA,QAEH,CAAA;AAAA,MAAA;AAAA,IAAA,GAEL;AAAA,IAEC,cACCA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW,CAAC,UAAU;AAAA,QACtB,SAAS,CAAC,CAAC;AAAA,QACX,QAAQ,MAAM,cAAc,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACnC,GAEJ;AAEJ;"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const React = require("react");
4
+ const useFiltersWithHierarchy = ({
5
+ sliceFilter,
6
+ persistedHierarchySelection,
7
+ filters,
8
+ merge = true
9
+ }) => {
10
+ const filtersWithHierarchy = React.useMemo(() => {
11
+ const buildHierarchyFilterOption = (hierarchy) => ({
12
+ id: "hierarchy",
13
+ label: "Folder",
14
+ type: "list_of_strings",
15
+ values: Object.values(hierarchy).map((item) => ({
16
+ id: item.id,
17
+ label: item.label || item.name || item.id
18
+ })),
19
+ isCustom: true,
20
+ singleSelect: true,
21
+ fieldType: "folder",
22
+ operator: "OR",
23
+ isReadonly: true
24
+ });
25
+ if (sliceFilter && persistedHierarchySelection) {
26
+ if (merge) {
27
+ return [buildHierarchyFilterOption(persistedHierarchySelection), ...filters];
28
+ } else {
29
+ return [buildHierarchyFilterOption(persistedHierarchySelection)];
30
+ }
31
+ }
32
+ return filters;
33
+ }, [sliceFilter, persistedHierarchySelection, filters]);
34
+ return filtersWithHierarchy;
35
+ };
36
+ exports.useFiltersWithHierarchy = useFiltersWithHierarchy;
37
+ //# sourceMappingURL=useFiltersWithHierarchy.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFiltersWithHierarchy.cjs.js","sources":["../../../../../src/containers/Slicer/useFiltersWithHierarchy.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { Filter, FilterValue } from '@ynput/ayon-react-components'\nimport { SelectionData } from '@shared/containers/Slicer'\n\ninterface UseFiltersWithHierarchyProps {\n sliceFilter: FilterValue | null\n persistedHierarchySelection: SelectionData | null\n filters: Filter[]\n merge?: boolean\n}\n\nexport const useFiltersWithHierarchy = ({\n sliceFilter,\n persistedHierarchySelection,\n filters,\n merge = true,\n}: UseFiltersWithHierarchyProps) => {\n const filtersWithHierarchy = useMemo(() => {\n const buildHierarchyFilterOption = (hierarchy: SelectionData): Filter => ({\n id: 'hierarchy',\n label: 'Folder',\n type: 'list_of_strings',\n values: Object.values(hierarchy).map((item) => ({\n id: item.id,\n label: item.label || item.name || item.id,\n })),\n isCustom: true,\n singleSelect: true,\n fieldType: 'folder',\n operator: 'OR',\n isReadonly: true,\n })\n\n if (sliceFilter && persistedHierarchySelection) {\n if (merge) {\n return [buildHierarchyFilterOption(persistedHierarchySelection), ...filters]\n } else {\n return [buildHierarchyFilterOption(persistedHierarchySelection)]\n }\n }\n return filters\n }, [sliceFilter, persistedHierarchySelection, filters])\n\n return filtersWithHierarchy\n}\n"],"names":["useMemo"],"mappings":";;;AAWO,MAAM,0BAA0B,CAAC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AACV,MAAoC;AAC5B,QAAA,uBAAuBA,MAAAA,QAAQ,MAAM;AACnC,UAAA,6BAA6B,CAAC,eAAsC;AAAA,MACxE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ,OAAO,OAAO,SAAS,EAAE,IAAI,CAAC,UAAU;AAAA,QAC9C,IAAI,KAAK;AAAA,QACT,OAAO,KAAK,SAAS,KAAK,QAAQ,KAAK;AAAA,MAAA,EACvC;AAAA,MACF,UAAU;AAAA,MACV,cAAc;AAAA,MACd,WAAW;AAAA,MACX,UAAU;AAAA,MACV,YAAY;AAAA,IAAA;AAGd,QAAI,eAAe,6BAA6B;AAC9C,UAAI,OAAO;AACT,eAAO,CAAC,2BAA2B,2BAA2B,GAAG,GAAG,OAAO;AAAA,MAAA,OACtE;AACE,eAAA,CAAC,2BAA2B,2BAA2B,CAAC;AAAA,MAAA;AAAA,IACjE;AAEK,WAAA;AAAA,EACN,GAAA,CAAC,aAAa,6BAA6B,OAAO,CAAC;AAE/C,SAAA;AACT;;"}
@@ -0,0 +1,37 @@
1
+ import { useMemo } from "react";
2
+ const useFiltersWithHierarchy = ({
3
+ sliceFilter,
4
+ persistedHierarchySelection,
5
+ filters,
6
+ merge = true
7
+ }) => {
8
+ const filtersWithHierarchy = useMemo(() => {
9
+ const buildHierarchyFilterOption = (hierarchy) => ({
10
+ id: "hierarchy",
11
+ label: "Folder",
12
+ type: "list_of_strings",
13
+ values: Object.values(hierarchy).map((item) => ({
14
+ id: item.id,
15
+ label: item.label || item.name || item.id
16
+ })),
17
+ isCustom: true,
18
+ singleSelect: true,
19
+ fieldType: "folder",
20
+ operator: "OR",
21
+ isReadonly: true
22
+ });
23
+ if (sliceFilter && persistedHierarchySelection) {
24
+ if (merge) {
25
+ return [buildHierarchyFilterOption(persistedHierarchySelection), ...filters];
26
+ } else {
27
+ return [buildHierarchyFilterOption(persistedHierarchySelection)];
28
+ }
29
+ }
30
+ return filters;
31
+ }, [sliceFilter, persistedHierarchySelection, filters]);
32
+ return filtersWithHierarchy;
33
+ };
34
+ export {
35
+ useFiltersWithHierarchy
36
+ };
37
+ //# sourceMappingURL=useFiltersWithHierarchy.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFiltersWithHierarchy.es.js","sources":["../../../../../src/containers/Slicer/useFiltersWithHierarchy.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { Filter, FilterValue } from '@ynput/ayon-react-components'\nimport { SelectionData } from '@shared/containers/Slicer'\n\ninterface UseFiltersWithHierarchyProps {\n sliceFilter: FilterValue | null\n persistedHierarchySelection: SelectionData | null\n filters: Filter[]\n merge?: boolean\n}\n\nexport const useFiltersWithHierarchy = ({\n sliceFilter,\n persistedHierarchySelection,\n filters,\n merge = true,\n}: UseFiltersWithHierarchyProps) => {\n const filtersWithHierarchy = useMemo(() => {\n const buildHierarchyFilterOption = (hierarchy: SelectionData): Filter => ({\n id: 'hierarchy',\n label: 'Folder',\n type: 'list_of_strings',\n values: Object.values(hierarchy).map((item) => ({\n id: item.id,\n label: item.label || item.name || item.id,\n })),\n isCustom: true,\n singleSelect: true,\n fieldType: 'folder',\n operator: 'OR',\n isReadonly: true,\n })\n\n if (sliceFilter && persistedHierarchySelection) {\n if (merge) {\n return [buildHierarchyFilterOption(persistedHierarchySelection), ...filters]\n } else {\n return [buildHierarchyFilterOption(persistedHierarchySelection)]\n }\n }\n return filters\n }, [sliceFilter, persistedHierarchySelection, filters])\n\n return filtersWithHierarchy\n}\n"],"names":[],"mappings":";AAWO,MAAM,0BAA0B,CAAC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AACV,MAAoC;AAC5B,QAAA,uBAAuB,QAAQ,MAAM;AACnC,UAAA,6BAA6B,CAAC,eAAsC;AAAA,MACxE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ,OAAO,OAAO,SAAS,EAAE,IAAI,CAAC,UAAU;AAAA,QAC9C,IAAI,KAAK;AAAA,QACT,OAAO,KAAK,SAAS,KAAK,QAAQ,KAAK;AAAA,MAAA,EACvC;AAAA,MACF,UAAU;AAAA,MACV,cAAc;AAAA,MACd,WAAW;AAAA,MACX,UAAU;AAAA,MACV,YAAY;AAAA,IAAA;AAGd,QAAI,eAAe,6BAA6B;AAC9C,UAAI,OAAO;AACT,eAAO,CAAC,2BAA2B,2BAA2B,GAAG,GAAG,OAAO;AAAA,MAAA,OACtE;AACE,eAAA,CAAC,2BAA2B,2BAA2B,CAAC;AAAA,MAAA;AAAA,IACjE;AAEK,WAAA;AAAA,EACN,GAAA,CAAC,aAAa,6BAA6B,OAAO,CAAC;AAE/C,SAAA;AACT;"}
@@ -109,7 +109,7 @@ export type ActionContext = {
109
109
  /** The name of the project. If not provided, use global actions, the rest of the fields are ignored. */
110
110
  projectName?: string;
111
111
  /** The type of the entity. If not specified, project-lever or global actions are used. */
112
- entityType?: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile' | 'list';
112
+ entityType?: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile' | 'list' | 'project';
113
113
  /** List of subtypes present in the entity list */
114
114
  entitySubtypes?: string[];
115
115
  /** The IDs of the entities */
@@ -187,6 +187,7 @@ export type InfoResponseModel = {
187
187
  attributes?: AttributeModel[];
188
188
  sites?: SiteInfo[];
189
189
  ssoOptions?: SsoOption[];
190
+ disableChangelog?: boolean;
190
191
  extras?: string;
191
192
  };
192
193
  export type SystemMetricsData = {
@@ -0,0 +1,56 @@
1
+ import { Option } from '@ynput/ayon-react-components';
2
+ export declare const NO_DATE = "no-date";
3
+ export declare const filterDateFunctions: {
4
+ today: () => {
5
+ label: string;
6
+ id: string;
7
+ }[];
8
+ yesterday: () => {
9
+ label: string;
10
+ id: string;
11
+ }[];
12
+ "after-now": () => {
13
+ label: string;
14
+ id: string;
15
+ }[];
16
+ "before-now": () => {
17
+ id: string;
18
+ label: string;
19
+ }[];
20
+ "this-week": () => {
21
+ label: string;
22
+ id: string;
23
+ }[];
24
+ "next-week": () => {
25
+ label: string;
26
+ id: string;
27
+ }[];
28
+ "last-week": () => {
29
+ label: string;
30
+ id: string;
31
+ }[];
32
+ "this-month": () => {
33
+ label: string;
34
+ id: string;
35
+ }[];
36
+ "next-month": () => {
37
+ label: string;
38
+ id: string;
39
+ }[];
40
+ "last-month": () => {
41
+ label: string;
42
+ id: string;
43
+ }[];
44
+ "this-year": () => {
45
+ label: string;
46
+ id: string;
47
+ }[];
48
+ "last-year": () => {
49
+ label: string;
50
+ id: string;
51
+ }[];
52
+ };
53
+ export type DateOptionType = keyof typeof filterDateFunctions;
54
+ export declare const dateOptions: (Option & {
55
+ id: DateOptionType;
56
+ })[];
@@ -0,0 +1,2 @@
1
+ export * from './useBuildFilterOptions';
2
+ export * from './filterDates';
@@ -0,0 +1,30 @@
1
+ import { ColumnOrderState } from '@tanstack/react-table';
2
+ import { Option } from '@ynput/ayon-react-components';
3
+ type Scope = 'folder' | 'product' | 'task' | 'user' | 'version';
4
+ export type FilterFieldType = 'folderType' | 'taskType' | 'productType' | ('users' | 'assignees') | 'attributes' | 'status' | 'tags';
5
+ type AttributeType = string | number | boolean | Date | string[] | number[] | any[] | {
6
+ [key: string]: any;
7
+ };
8
+ type AttributeDataValue = AttributeType | null | undefined;
9
+ type FilterConfig = {
10
+ enableExcludes?: boolean;
11
+ enableOperatorChange?: boolean;
12
+ enableRelativeValues?: boolean;
13
+ prefixes?: Partial<Record<FilterFieldType, string>>;
14
+ keys?: Partial<Record<FilterFieldType, string>>;
15
+ };
16
+ export type BuildFilterOptions = {
17
+ filterTypes: FilterFieldType[];
18
+ projectNames: string[];
19
+ scope: Scope;
20
+ data: {
21
+ tags?: string[];
22
+ attributes?: Record<string, AttributeDataValue[]>;
23
+ assignees?: string[];
24
+ };
25
+ columnOrder?: ColumnOrderState;
26
+ config?: FilterConfig;
27
+ power?: boolean;
28
+ };
29
+ export declare const useBuildFilterOptions: ({ filterTypes, projectNames, scope, data, config, columnOrder, power, }: BuildFilterOptions) => Option[];
30
+ export {};
@@ -17,3 +17,4 @@ export * from './ProjectTableSettings';
17
17
  export * from './SettingsPanel';
18
18
  export * from './AttributeEditor';
19
19
  export * from './EnumEditor';
20
+ export * from './SearchFilter';
@@ -3,7 +3,7 @@ type Props = {
3
3
  filesUploading: File[];
4
4
  };
5
5
  export type AnnotationPreview = any & {
6
- isUnsavedAnnotation: true;
6
+ unsavedAnnotation: any;
7
7
  };
8
8
  export declare const filterEntityAnnotations: (annotations: Record<string, any>, entityId: string, filesUploading: File[]) => AnnotationPreview[];
9
9
  declare const useAnnotationsSync: ({ entityId, filesUploading }: Props) => {
@@ -1,7 +1,7 @@
1
1
  import { SavedAnnotationMetadata } from '../../../index';
2
2
  type Props = {
3
3
  projectName: string;
4
- onSuccess: (data: any) => void;
4
+ onSuccess: (data: any) => any;
5
5
  };
6
6
  declare const useAnnotationsUpload: ({ projectName, onSuccess }: Props) => (annotations: any[]) => Promise<{
7
7
  files: any[];
@@ -1,10 +1,11 @@
1
1
  import { SavedAnnotationMetadata } from '../../..';
2
+ import { AnnotationPreview } from '../CommentInput/hooks/useAnnotationsSync';
2
3
  export interface FileUploadCardProps extends React.HTMLAttributes<HTMLDivElement> {
3
4
  name: string;
4
5
  mime?: string;
5
6
  src?: string;
6
- isUnsavedAnnotation?: boolean;
7
- savedAnnotation: SavedAnnotationMetadata;
7
+ unsavedAnnotation?: AnnotationPreview;
8
+ savedAnnotation?: SavedAnnotationMetadata;
8
9
  size: number;
9
10
  progress: number;
10
11
  onRemove?: () => void;
@@ -13,5 +14,5 @@ export interface FileUploadCardProps extends React.HTMLAttributes<HTMLDivElement
13
14
  onExpand?: () => void;
14
15
  onJumpTo?: () => void;
15
16
  }
16
- declare const FileUploadCard: ({ name, mime, src, isUnsavedAnnotation, savedAnnotation, size, progress, onRemove, isCompact, isDownloadable, onExpand, onJumpTo, className, ...props }: FileUploadCardProps) => import("react/jsx-runtime").JSX.Element;
17
+ declare const FileUploadCard: ({ name, mime, src, unsavedAnnotation, savedAnnotation, size, progress, onRemove, isCompact, isDownloadable, onExpand, onJumpTo, className, ...props }: FileUploadCardProps) => import("react/jsx-runtime").JSX.Element;
17
18
  export default FileUploadCard;
@@ -1,2 +1,3 @@
1
1
  export * from './types';
2
2
  export * from './createFilterFromSlicer';
3
+ export * from './useFiltersWithHierarchy';
@@ -0,0 +1,10 @@
1
+ import { Filter, FilterValue } from '@ynput/ayon-react-components';
2
+ import { SelectionData } from '.';
3
+ interface UseFiltersWithHierarchyProps {
4
+ sliceFilter: FilterValue | null;
5
+ persistedHierarchySelection: SelectionData | null;
6
+ filters: Filter[];
7
+ merge?: boolean;
8
+ }
9
+ export declare const useFiltersWithHierarchy: ({ sliceFilter, persistedHierarchySelection, filters, merge, }: UseFiltersWithHierarchyProps) => Filter[];
10
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ynput/ayon-frontend-shared",
3
- "version": "0.2.13",
3
+ "version": "0.2.14",
4
4
  "description": "Shared React components for AYON frontend",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.es.js",