@chayns-components/gallery 5.0.0-beta.199 → 5.0.0-beta.200

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.
@@ -1,4 +1,4 @@
1
- import type { FileItem } from '@chayns-components/core/src/types/file';
1
+ import type { FileItem } from '@chayns-components/core/lib/types/file';
2
2
  import { FC } from 'react';
3
3
  export type GalleryProps = {
4
4
  /**
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _uploadFile = require("@chayns-components/core/src/utils/uploadFile");
7
+ var _core = require("@chayns-components/core");
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _uuid = require("uuid");
10
10
  var _file = require("../utils/file");
@@ -14,6 +14,8 @@ var _Gallery = require("./Gallery.styles");
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+ // TODO: Check why absolute import is needed
18
+
17
19
  const Gallery = _ref => {
18
20
  let {
19
21
  accessToken,
@@ -98,7 +100,7 @@ const Gallery = _ref => {
98
100
  }
99
101
  return prevFile;
100
102
  }));
101
- void (0, _uploadFile.uploadFile)({
103
+ void (0, _core.uploadFile)({
102
104
  fileToUpload: file,
103
105
  personId,
104
106
  accessToken,
@@ -1 +1 @@
1
- {"version":3,"file":"Gallery.js","names":["_uploadFile","require","_react","_interopRequireWildcard","_uuid","_file","_AddFile","_interopRequireDefault","_GalleryItem","_Gallery","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Gallery","_ref","accessToken","allowDragAndDrop","isEditMode","files","onAdd","onRemove","personId","fileItems","setFileItems","useState","handlePreviewUrlCallback","previewUrl","file","prevState","map","prevFile","id","handleUploadFileCallback","UploadedFile","uploadedFile","state","useEffect","filesToGeneratePreview","filter","filesToUpload","forEach","type","includes","generateVideoThumbnail","callback","generatePreviewUrl","uploadFile","fileToUpload","handleAddFiles","useCallback","filesToAdd","newFileItems","filterDuplicateFile","newFile","push","uuidv4","handleDeleteFile","fileToDelete","filteredFiles","fileId","handleDrop","e","preventDefault","draggedFiles","Array","from","dataTransfer","ratio","useMemo","_fileItems$0$uploaded","_fileItems$","_fileItems$$uploadedF","length","Math","max","columns","combinedFilesLength","galleryContent","items","createElement","fileItem","shortedFiles","slice","index","remainingItemsLength","undefined","StyledGallery","StyledGalleryEditModeWrapper","onDragOver","onDrop","StyledGalleryItemWrapper","uploadedFileLength","displayName","_default","exports"],"sources":["../../src/components/Gallery.tsx"],"sourcesContent":["import type { FileItem, Image, Video } from '@chayns-components/core/src/types/file';\nimport { uploadFile } from '@chayns-components/core/src/utils/uploadFile';\nimport React, { DragEvent, FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { filterDuplicateFile, generatePreviewUrl, generateVideoThumbnail } from '../utils/file';\nimport AddFile from './add-file/AddFile';\nimport GalleryItem from './gallery-item/GalleryItem';\nimport {\n StyledGallery,\n StyledGalleryEditModeWrapper,\n StyledGalleryItemWrapper,\n} from './Gallery.styles';\n\nexport type GalleryProps = {\n /**\n * AccessToken of the user\n */\n accessToken: string;\n /**\n * Whether drag and drop is allowed or not\n */\n allowDragAndDrop?: boolean;\n /**\n * Whether images and videos can be edited\n */\n isEditMode?: boolean;\n /**\n * Images and videos which should be displayed\n */\n files?: FileItem[];\n /**\n * Function to be executed when files are added\n */\n onAdd?: (files: FileItem[]) => void;\n /**\n * Function to be executed when a file is removed\n */\n onRemove?: (file: FileItem) => void;\n /**\n * PersonId of the user\n */\n personId: string;\n};\n\nconst Gallery: FC<GalleryProps> = ({\n accessToken,\n allowDragAndDrop = false,\n isEditMode = false,\n files,\n onAdd,\n onRemove,\n personId,\n}) => {\n const [fileItems, setFileItems] = useState<FileItem[]>([]);\n\n /**\n * This function adds a previewUrl to fileItems\n */\n const handlePreviewUrlCallback = (previewUrl: string, file: FileItem) => {\n setFileItems((prevState) =>\n prevState.map((prevFile) => {\n if (prevFile.id === file.id) {\n return { ...prevFile, previewUrl };\n }\n return prevFile;\n })\n );\n };\n\n /**\n * This function adds uploaded files to fileItems\n */\n const handleUploadFileCallback = (file: FileItem, UploadedFile: Video | Image) => {\n setFileItems((prevState) =>\n prevState.map((prevFile) => {\n if (prevFile.id === file.id) {\n return {\n ...prevFile,\n uploadedFile: UploadedFile,\n state: 'uploaded',\n };\n }\n return prevFile;\n })\n );\n };\n\n /**\n * This function returns the fileItems if some files are updated\n */\n useEffect(() => {\n if (onAdd) {\n onAdd(fileItems);\n }\n }, [fileItems, onAdd]);\n\n /**\n * Prepares files for previewUrl and upload\n */\n useEffect(() => {\n const filesToGeneratePreview = fileItems.filter(\n (file) => file.file && !file.previewUrl && (file.state === 'none' || !file.state)\n );\n\n const filesToUpload = fileItems.filter(\n (file) => !file.uploadedFile && file.state !== 'uploading'\n );\n\n filesToGeneratePreview.forEach((file) => {\n if (!file.file) {\n return;\n }\n\n if (file.file.type.includes('video/')) {\n generateVideoThumbnail({\n file: file.file,\n callback: (previewUrl) => handlePreviewUrlCallback(previewUrl, file),\n });\n\n return;\n }\n\n generatePreviewUrl({\n file: file.file,\n callback: (previewUrl) => handlePreviewUrlCallback(previewUrl, file),\n });\n });\n\n filesToUpload.forEach((file) => {\n setFileItems((prevState) =>\n prevState.map((prevFile) => {\n if (prevFile.id === file.id) {\n return { ...prevFile, state: 'uploading' };\n }\n return prevFile;\n })\n );\n\n void uploadFile({\n fileToUpload: file,\n personId,\n accessToken,\n callback: (UploadedFile) => handleUploadFileCallback(file, UploadedFile),\n });\n });\n }, [accessToken, fileItems, personId]);\n\n /**\n * This function formats and adds files to fileItems\n */\n const handleAddFiles = useCallback(\n (filesToAdd: File[]) => {\n const newFileItems: FileItem[] = [];\n\n filesToAdd.forEach((file) => {\n if (file && !filterDuplicateFile({ files: fileItems, newFile: file })) {\n newFileItems.push({\n id: uuidv4(),\n file,\n state: 'none',\n });\n }\n });\n\n setFileItems((prevState) => [...prevState, ...newFileItems]);\n },\n [fileItems]\n );\n\n /**\n * This function adds external files to fileItems\n */\n useEffect(() => {\n if (files) {\n const newFileItems: FileItem[] = [];\n\n files.forEach((file) => {\n newFileItems.push({\n id: uuidv4(),\n uploadedFile: file.uploadedFile,\n file: file.file,\n state: file.uploadedFile ? 'uploaded' : 'none',\n });\n });\n\n setFileItems((prevState) => [...prevState, ...newFileItems]);\n }\n }, [files]);\n\n /**\n * This function deletes a selected file from the file list\n */\n const handleDeleteFile = useCallback(\n (id?: string) => {\n let fileToDelete: FileItem | undefined;\n\n const filteredFiles = fileItems.filter((file) => {\n const fileId = file.id;\n\n if (fileId === id) {\n fileToDelete = file;\n }\n\n return fileId !== id;\n });\n\n setFileItems(filteredFiles);\n\n if (!fileToDelete || !onRemove) {\n return;\n }\n\n onRemove(fileToDelete);\n },\n [fileItems, onRemove]\n );\n\n /**\n * This function handles the drag and drop\n */\n const handleDrop = useCallback(\n (e: DragEvent<HTMLDivElement>) => {\n if (!allowDragAndDrop) {\n return;\n }\n\n e.preventDefault();\n const draggedFiles = Array.from(e.dataTransfer.files);\n\n handleAddFiles(draggedFiles);\n },\n [allowDragAndDrop, handleAddFiles]\n );\n\n /**\n * Returns the ratio of the single file\n */\n const ratio = useMemo(() => {\n switch (fileItems.length) {\n case 0:\n return 0;\n case 1:\n return Math.max(fileItems[0]?.uploadedFile?.ratio ?? 1, 1);\n case 2:\n return 2;\n case 3:\n return 3;\n default:\n return 1;\n }\n }, [fileItems]);\n\n /**\n * Returns the number of columns\n */\n const columns = useMemo(() => {\n const combinedFilesLength = fileItems.length;\n\n if (combinedFilesLength <= 1) {\n return '';\n }\n\n return `repeat(${combinedFilesLength === 3 ? 3 : 2}, 1fr)`;\n }, [fileItems.length]);\n\n const galleryContent = useMemo(() => {\n const combinedFilesLength = fileItems.length;\n\n if (isEditMode) {\n const items = fileItems.map((file) => (\n <GalleryItem\n key={file.id}\n fileItem={file}\n isEditMode\n handleDeleteFile={handleDeleteFile}\n />\n ));\n\n items.push(<AddFile onAdd={handleAddFiles} />);\n\n return items;\n }\n\n const shortedFiles = fileItems.slice(0, 4);\n\n return shortedFiles.map((file, index) => (\n <GalleryItem\n key={file.id}\n fileItem={file}\n isEditMode={false}\n handleDeleteFile={handleDeleteFile}\n remainingItemsLength={\n combinedFilesLength > 4 && index === 3 ? combinedFilesLength : undefined\n }\n />\n ));\n }, [fileItems, isEditMode, handleAddFiles, handleDeleteFile]);\n\n return useMemo(\n () => (\n <StyledGallery>\n {isEditMode ? (\n <StyledGalleryEditModeWrapper\n onDragOver={(e) => e.preventDefault()}\n onDrop={(e) => void handleDrop(e)}\n >\n {galleryContent}\n </StyledGalleryEditModeWrapper>\n ) : (\n <StyledGalleryItemWrapper\n ratio={ratio}\n columns={columns}\n uploadedFileLength={fileItems.length}\n >\n {galleryContent}\n </StyledGalleryItemWrapper>\n )}\n </StyledGallery>\n ),\n [isEditMode, galleryContent, ratio, columns, fileItems.length, handleDrop]\n );\n};\n\nGallery.displayName = 'Gallery';\n\nexport default Gallery;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Gallery.js","names":["_core","require","_react","_interopRequireWildcard","_uuid","_file","_AddFile","_interopRequireDefault","_GalleryItem","_Gallery","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Gallery","_ref","accessToken","allowDragAndDrop","isEditMode","files","onAdd","onRemove","personId","fileItems","setFileItems","useState","handlePreviewUrlCallback","previewUrl","file","prevState","map","prevFile","id","handleUploadFileCallback","UploadedFile","uploadedFile","state","useEffect","filesToGeneratePreview","filter","filesToUpload","forEach","type","includes","generateVideoThumbnail","callback","generatePreviewUrl","uploadFile","fileToUpload","handleAddFiles","useCallback","filesToAdd","newFileItems","filterDuplicateFile","newFile","push","uuidv4","handleDeleteFile","fileToDelete","filteredFiles","fileId","handleDrop","e","preventDefault","draggedFiles","Array","from","dataTransfer","ratio","useMemo","_fileItems$0$uploaded","_fileItems$","_fileItems$$uploadedF","length","Math","max","columns","combinedFilesLength","galleryContent","items","createElement","fileItem","shortedFiles","slice","index","remainingItemsLength","undefined","StyledGallery","StyledGalleryEditModeWrapper","onDragOver","onDrop","StyledGalleryItemWrapper","uploadedFileLength","displayName","_default","exports"],"sources":["../../src/components/Gallery.tsx"],"sourcesContent":["import { uploadFile } from '@chayns-components/core';\nimport type { FileItem, Image, Video } from '@chayns-components/core/lib/types/file'; // TODO: Check why absolute import is needed\nimport React, { DragEvent, FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { filterDuplicateFile, generatePreviewUrl, generateVideoThumbnail } from '../utils/file';\nimport AddFile from './add-file/AddFile';\nimport GalleryItem from './gallery-item/GalleryItem';\nimport {\n StyledGallery,\n StyledGalleryEditModeWrapper,\n StyledGalleryItemWrapper,\n} from './Gallery.styles';\n\nexport type GalleryProps = {\n /**\n * AccessToken of the user\n */\n accessToken: string;\n /**\n * Whether drag and drop is allowed or not\n */\n allowDragAndDrop?: boolean;\n /**\n * Whether images and videos can be edited\n */\n isEditMode?: boolean;\n /**\n * Images and videos which should be displayed\n */\n files?: FileItem[];\n /**\n * Function to be executed when files are added\n */\n onAdd?: (files: FileItem[]) => void;\n /**\n * Function to be executed when a file is removed\n */\n onRemove?: (file: FileItem) => void;\n /**\n * PersonId of the user\n */\n personId: string;\n};\n\nconst Gallery: FC<GalleryProps> = ({\n accessToken,\n allowDragAndDrop = false,\n isEditMode = false,\n files,\n onAdd,\n onRemove,\n personId,\n}) => {\n const [fileItems, setFileItems] = useState<FileItem[]>([]);\n\n /**\n * This function adds a previewUrl to fileItems\n */\n const handlePreviewUrlCallback = (previewUrl: string, file: FileItem) => {\n setFileItems((prevState) =>\n prevState.map((prevFile) => {\n if (prevFile.id === file.id) {\n return { ...prevFile, previewUrl };\n }\n return prevFile;\n })\n );\n };\n\n /**\n * This function adds uploaded files to fileItems\n */\n const handleUploadFileCallback = (file: FileItem, UploadedFile: Video | Image) => {\n setFileItems((prevState) =>\n prevState.map((prevFile) => {\n if (prevFile.id === file.id) {\n return {\n ...prevFile,\n uploadedFile: UploadedFile,\n state: 'uploaded',\n };\n }\n return prevFile;\n })\n );\n };\n\n /**\n * This function returns the fileItems if some files are updated\n */\n useEffect(() => {\n if (onAdd) {\n onAdd(fileItems);\n }\n }, [fileItems, onAdd]);\n\n /**\n * Prepares files for previewUrl and upload\n */\n useEffect(() => {\n const filesToGeneratePreview = fileItems.filter(\n (file) => file.file && !file.previewUrl && (file.state === 'none' || !file.state)\n );\n\n const filesToUpload = fileItems.filter(\n (file) => !file.uploadedFile && file.state !== 'uploading'\n );\n\n filesToGeneratePreview.forEach((file) => {\n if (!file.file) {\n return;\n }\n\n if (file.file.type.includes('video/')) {\n generateVideoThumbnail({\n file: file.file,\n callback: (previewUrl) => handlePreviewUrlCallback(previewUrl, file),\n });\n\n return;\n }\n\n generatePreviewUrl({\n file: file.file,\n callback: (previewUrl) => handlePreviewUrlCallback(previewUrl, file),\n });\n });\n\n filesToUpload.forEach((file) => {\n setFileItems((prevState) =>\n prevState.map((prevFile) => {\n if (prevFile.id === file.id) {\n return { ...prevFile, state: 'uploading' };\n }\n return prevFile;\n })\n );\n\n void uploadFile({\n fileToUpload: file,\n personId,\n accessToken,\n callback: (UploadedFile) => handleUploadFileCallback(file, UploadedFile),\n });\n });\n }, [accessToken, fileItems, personId]);\n\n /**\n * This function formats and adds files to fileItems\n */\n const handleAddFiles = useCallback(\n (filesToAdd: File[]) => {\n const newFileItems: FileItem[] = [];\n\n filesToAdd.forEach((file) => {\n if (file && !filterDuplicateFile({ files: fileItems, newFile: file })) {\n newFileItems.push({\n id: uuidv4(),\n file,\n state: 'none',\n });\n }\n });\n\n setFileItems((prevState) => [...prevState, ...newFileItems]);\n },\n [fileItems]\n );\n\n /**\n * This function adds external files to fileItems\n */\n useEffect(() => {\n if (files) {\n const newFileItems: FileItem[] = [];\n\n files.forEach((file) => {\n newFileItems.push({\n id: uuidv4(),\n uploadedFile: file.uploadedFile,\n file: file.file,\n state: file.uploadedFile ? 'uploaded' : 'none',\n });\n });\n\n setFileItems((prevState) => [...prevState, ...newFileItems]);\n }\n }, [files]);\n\n /**\n * This function deletes a selected file from the file list\n */\n const handleDeleteFile = useCallback(\n (id?: string) => {\n let fileToDelete: FileItem | undefined;\n\n const filteredFiles = fileItems.filter((file) => {\n const fileId = file.id;\n\n if (fileId === id) {\n fileToDelete = file;\n }\n\n return fileId !== id;\n });\n\n setFileItems(filteredFiles);\n\n if (!fileToDelete || !onRemove) {\n return;\n }\n\n onRemove(fileToDelete);\n },\n [fileItems, onRemove]\n );\n\n /**\n * This function handles the drag and drop\n */\n const handleDrop = useCallback(\n (e: DragEvent<HTMLDivElement>) => {\n if (!allowDragAndDrop) {\n return;\n }\n\n e.preventDefault();\n const draggedFiles = Array.from(e.dataTransfer.files);\n\n handleAddFiles(draggedFiles);\n },\n [allowDragAndDrop, handleAddFiles]\n );\n\n /**\n * Returns the ratio of the single file\n */\n const ratio = useMemo(() => {\n switch (fileItems.length) {\n case 0:\n return 0;\n case 1:\n return Math.max(fileItems[0]?.uploadedFile?.ratio ?? 1, 1);\n case 2:\n return 2;\n case 3:\n return 3;\n default:\n return 1;\n }\n }, [fileItems]);\n\n /**\n * Returns the number of columns\n */\n const columns = useMemo(() => {\n const combinedFilesLength = fileItems.length;\n\n if (combinedFilesLength <= 1) {\n return '';\n }\n\n return `repeat(${combinedFilesLength === 3 ? 3 : 2}, 1fr)`;\n }, [fileItems.length]);\n\n const galleryContent = useMemo(() => {\n const combinedFilesLength = fileItems.length;\n\n if (isEditMode) {\n const items = fileItems.map((file) => (\n <GalleryItem\n key={file.id}\n fileItem={file}\n isEditMode\n handleDeleteFile={handleDeleteFile}\n />\n ));\n\n items.push(<AddFile onAdd={handleAddFiles} />);\n\n return items;\n }\n\n const shortedFiles = fileItems.slice(0, 4);\n\n return shortedFiles.map((file, index) => (\n <GalleryItem\n key={file.id}\n fileItem={file}\n isEditMode={false}\n handleDeleteFile={handleDeleteFile}\n remainingItemsLength={\n combinedFilesLength > 4 && index === 3 ? combinedFilesLength : undefined\n }\n />\n ));\n }, [fileItems, isEditMode, handleAddFiles, handleDeleteFile]);\n\n return useMemo(\n () => (\n <StyledGallery>\n {isEditMode ? (\n <StyledGalleryEditModeWrapper\n onDragOver={(e) => e.preventDefault()}\n onDrop={(e) => void handleDrop(e)}\n >\n {galleryContent}\n </StyledGalleryEditModeWrapper>\n ) : (\n <StyledGalleryItemWrapper\n ratio={ratio}\n columns={columns}\n uploadedFileLength={fileItems.length}\n >\n {galleryContent}\n </StyledGalleryItemWrapper>\n )}\n </StyledGallery>\n ),\n [isEditMode, galleryContent, ratio, columns, fileItems.length, handleDrop]\n );\n};\n\nGallery.displayName = 'Gallery';\n\nexport default Gallery;\n"],"mappings":"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"}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _core = require("@chayns-components/core");
8
- var _fileDialog = require("@chayns-components/core/src/utils/fileDialog");
9
8
  var _react = _interopRequireWildcard(require("react"));
10
9
  var _AddFile = require("./AddFile.styles");
11
10
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -15,7 +14,7 @@ const AddFile = _ref => {
15
14
  onAdd
16
15
  } = _ref;
17
16
  const openSelectDialog = (0, _react.useCallback)(async () => {
18
- const files = await (0, _fileDialog.selectFiles)({
17
+ const files = await (0, _core.selectFiles)({
19
18
  multiple: true,
20
19
  type: 'image/*, video/*'
21
20
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AddFile.js","names":["_core","require","_fileDialog","_react","_interopRequireWildcard","_AddFile","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","AddFile","_ref","onAdd","openSelectDialog","useCallback","files","selectFiles","multiple","type","createElement","StyledAddFile","StyledAddFIleIconWrapper","onClick","Icon","size","icons","displayName","_default","exports"],"sources":["../../../src/components/add-file/AddFile.tsx"],"sourcesContent":["import { Icon } from '@chayns-components/core';\nimport { selectFiles } from '@chayns-components/core/src/utils/fileDialog';\nimport React, { FC, useCallback } from 'react';\nimport { StyledAddFile, StyledAddFIleIconWrapper } from './AddFile.styles';\n\nexport type AddFileProps = {\n /**\n * Function to be executed when files are added\n */\n onAdd: (files: File[]) => void;\n};\n\nconst AddFile: FC<AddFileProps> = ({ onAdd }) => {\n const openSelectDialog = useCallback(async () => {\n const files = await selectFiles({\n multiple: true,\n type: 'image/*, video/*',\n });\n\n onAdd(files);\n }, [onAdd]);\n\n return (\n <StyledAddFile key=\"addButton\">\n <StyledAddFIleIconWrapper onClick={() => void openSelectDialog()}>\n <Icon size={40} icons={['fa fa-plus']} />\n </StyledAddFIleIconWrapper>\n </StyledAddFile>\n );\n};\n\nAddFile.displayName = 'AddFile';\n\nexport default AddFile;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAA2E,SAAAK,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAS3E,MAAMW,OAAyB,GAAGC,IAAA,IAAe;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACxC,MAAME,gBAAgB,GAAG,IAAAC,kBAAW,EAAC,YAAY;IAC7C,MAAMC,KAAK,GAAG,MAAM,IAAAC,uBAAW,EAAC;MAC5BC,QAAQ,EAAE,IAAI;MACdC,IAAI,EAAE;IACV,CAAC,CAAC;IAEFN,KAAK,CAACG,KAAK,CAAC;EAChB,CAAC,EAAE,CAACH,KAAK,CAAC,CAAC;EAEX,oBACI3B,MAAA,CAAAU,OAAA,CAAAwB,aAAA,CAAChC,QAAA,CAAAiC,aAAa;IAAChB,GAAG,EAAC;EAAW,gBAC1BnB,MAAA,CAAAU,OAAA,CAAAwB,aAAA,CAAChC,QAAA,CAAAkC,wBAAwB;IAACC,OAAO,EAAEA,CAAA,KAAM,KAAKT,gBAAgB,CAAC;EAAE,gBAC7D5B,MAAA,CAAAU,OAAA,CAAAwB,aAAA,CAACrC,KAAA,CAAAyC,IAAI;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAE,CAAC,YAAY;EAAE,CAAE,CAClB,CACf,CAAC;AAExB,CAAC;AAEDf,OAAO,CAACgB,WAAW,GAAG,SAAS;AAAC,IAAAC,QAAA,GAEjBjB,OAAO;AAAAkB,OAAA,CAAAjC,OAAA,GAAAgC,QAAA"}
1
+ {"version":3,"file":"AddFile.js","names":["_core","require","_react","_interopRequireWildcard","_AddFile","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","AddFile","_ref","onAdd","openSelectDialog","useCallback","files","selectFiles","multiple","type","createElement","StyledAddFile","StyledAddFIleIconWrapper","onClick","Icon","size","icons","displayName","_default","exports"],"sources":["../../../src/components/add-file/AddFile.tsx"],"sourcesContent":["import { Icon, selectFiles } from '@chayns-components/core';\nimport React, { FC, useCallback } from 'react';\nimport { StyledAddFile, StyledAddFIleIconWrapper } from './AddFile.styles';\n\nexport type AddFileProps = {\n /**\n * Function to be executed when files are added\n */\n onAdd: (files: File[]) => void;\n};\n\nconst AddFile: FC<AddFileProps> = ({ onAdd }) => {\n const openSelectDialog = useCallback(async () => {\n const files = await selectFiles({\n multiple: true,\n type: 'image/*, video/*',\n });\n\n onAdd(files);\n }, [onAdd]);\n\n return (\n <StyledAddFile key=\"addButton\">\n <StyledAddFIleIconWrapper onClick={() => void openSelectDialog()}>\n <Icon size={40} icons={['fa fa-plus']} />\n </StyledAddFIleIconWrapper>\n </StyledAddFile>\n );\n};\n\nAddFile.displayName = 'AddFile';\n\nexport default AddFile;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAA2E,SAAAI,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAS3E,MAAMW,OAAyB,GAAGC,IAAA,IAAe;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACxC,MAAME,gBAAgB,GAAG,IAAAC,kBAAW,EAAC,YAAY;IAC7C,MAAMC,KAAK,GAAG,MAAM,IAAAC,iBAAW,EAAC;MAC5BC,QAAQ,EAAE,IAAI;MACdC,IAAI,EAAE;IACV,CAAC,CAAC;IAEFN,KAAK,CAACG,KAAK,CAAC;EAChB,CAAC,EAAE,CAACH,KAAK,CAAC,CAAC;EAEX,oBACI3B,MAAA,CAAAU,OAAA,CAAAwB,aAAA,CAAChC,QAAA,CAAAiC,aAAa;IAAChB,GAAG,EAAC;EAAW,gBAC1BnB,MAAA,CAAAU,OAAA,CAAAwB,aAAA,CAAChC,QAAA,CAAAkC,wBAAwB;IAACC,OAAO,EAAEA,CAAA,KAAM,KAAKT,gBAAgB,CAAC;EAAE,gBAC7D5B,MAAA,CAAAU,OAAA,CAAAwB,aAAA,CAACpC,KAAA,CAAAwC,IAAI;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAE,CAAC,YAAY;EAAE,CAAE,CAClB,CACf,CAAC;AAExB,CAAC;AAEDf,OAAO,CAACgB,WAAW,GAAG,SAAS;AAAC,IAAAC,QAAA,GAEjBjB,OAAO;AAAAkB,OAAA,CAAAjC,OAAA,GAAAgC,QAAA"}
@@ -1,4 +1,4 @@
1
- import type { FileItem } from '@chayns-components/core/src/types/file';
1
+ import type { FileItem } from '@chayns-components/core/lib/types/file';
2
2
  import { FC } from 'react';
3
3
  export type GalleryItemProps = {
4
4
  /**
@@ -10,7 +10,7 @@ export type GalleryItemProps = {
10
10
  */
11
11
  isEditMode: boolean;
12
12
  /**
13
- * Function to be executed wehen a file is deleted
13
+ * Function to be executed when a file is deleted
14
14
  */
15
15
  handleDeleteFile: (id?: string) => void;
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"GalleryItem.js","names":["_core","require","_framerMotion","_react","_interopRequireWildcard","_GalleryItem","_MediaItem","_interopRequireDefault","_PreviewItem","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GalleryItem","_ref","fileItem","handleDeleteFile","isEditMode","remainingItemsLength","openSelectedFile","useCallback","file","_file$uploadedFile","state","uploadedFile","chayns","openVideo","url","openImage","useMemo","_fileItem$id","_fileItem$id2","createElement","StyledGalleryItem","StyledGalleryItemDeleteButton","onClick","id","Icon","size","icons","previewUrl","AnimatePresence","initial","StyledGalleryItemMoreItemsIndicator","displayName","_default","exports"],"sources":["../../../src/components/gallery-item/GalleryItem.tsx"],"sourcesContent":["import { Icon } from '@chayns-components/core';\nimport type { FileItem } from '@chayns-components/core/src/types/file';\nimport { AnimatePresence } from 'framer-motion';\nimport React, { FC, useCallback, useMemo } from 'react';\nimport {\n StyledGalleryItem,\n StyledGalleryItemDeleteButton,\n StyledGalleryItemMoreItemsIndicator,\n} from './GalleryItem.styles';\nimport MediaItem from './media-item/MediaItem';\nimport PreviewItem from './preview-item/PreviewItem';\n\nexport type GalleryItemProps = {\n /**\n * Images and videos which should be displayed\n */\n fileItem: FileItem;\n /**\n * Whether images and videos can be edited\n */\n isEditMode: boolean;\n /**\n * Function to be executed wehen a file is deleted\n */\n handleDeleteFile: (id?: string) => void;\n /**\n * Length of the uploaded files\n */\n remainingItemsLength?: number;\n};\n\nconst GalleryItem: FC<GalleryItemProps> = ({\n fileItem,\n handleDeleteFile,\n isEditMode,\n remainingItemsLength,\n}) => {\n /**\n * This function opens a selected file\n */\n const openSelectedFile = useCallback((file: FileItem) => {\n if (file.state !== 'uploaded') {\n // ToDo add dialog that the file is not loaded yet\n\n return;\n }\n\n if (file.uploadedFile && 'thumbnailUrl' in file.uploadedFile) {\n // @ts-expect-error: Type is correct here\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access\n void chayns.openVideo(file.uploadedFile.url);\n\n return;\n }\n\n // @ts-expect-error: Type is correct here\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access\n void chayns.openImage([file.uploadedFile?.url], 0);\n }, []);\n\n return useMemo(\n () => (\n <StyledGalleryItem>\n {isEditMode && (\n <StyledGalleryItemDeleteButton onClick={() => handleDeleteFile(fileItem.id)}>\n <Icon size={20} icons={['ts-wrong']} />\n </StyledGalleryItemDeleteButton>\n )}\n {!fileItem.state ||\n fileItem.state === 'none' ||\n (!fileItem.previewUrl && !fileItem.uploadedFile) ? null : (\n <AnimatePresence initial={false}>\n {fileItem.state === 'uploading' ? (\n <PreviewItem\n key={`uploading_${fileItem.id ?? ''}`}\n fileItem={fileItem}\n />\n ) : (\n <MediaItem\n key={`uploaded_${fileItem.id ?? ''}`}\n fileItem={fileItem}\n isEditMode={isEditMode}\n openSelectedFile={openSelectedFile}\n />\n )}\n </AnimatePresence>\n )}\n {remainingItemsLength && (\n <StyledGalleryItemMoreItemsIndicator>\n <p>{`+ ${remainingItemsLength - 3}`}</p>\n </StyledGalleryItemMoreItemsIndicator>\n )}\n </StyledGalleryItem>\n ),\n [fileItem, handleDeleteFile, isEditMode, openSelectedFile, remainingItemsLength]\n );\n};\n\nGalleryItem.displayName = 'GalleryItem';\n\nexport default GalleryItem;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAKA,IAAAK,UAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,YAAA,GAAAD,sBAAA,CAAAN,OAAA;AAAqD,SAAAM,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAT,wBAAAK,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAqBrD,MAAMW,WAAiC,GAAGC,IAAA,IAKpC;EAAA,IALqC;IACvCC,QAAQ;IACRC,gBAAgB;IAChBC,UAAU;IACVC;EACJ,CAAC,GAAAJ,IAAA;EACG;AACJ;AACA;EACI,MAAMK,gBAAgB,GAAG,IAAAC,kBAAW,EAAEC,IAAc,IAAK;IAAA,IAAAC,kBAAA;IACrD,IAAID,IAAI,CAACE,KAAK,KAAK,UAAU,EAAE;MAC3B;;MAEA;IACJ;IAEA,IAAIF,IAAI,CAACG,YAAY,IAAI,cAAc,IAAIH,IAAI,CAACG,YAAY,EAAE;MAC1D;MACA;MACA,KAAKC,MAAM,CAACC,SAAS,CAACL,IAAI,CAACG,YAAY,CAACG,GAAG,CAAC;MAE5C;IACJ;;IAEA;IACA;IACA,KAAKF,MAAM,CAACG,SAAS,CAAC,EAAAN,kBAAA,GAACD,IAAI,CAACG,YAAY,cAAAF,kBAAA,uBAAjBA,kBAAA,CAAmBK,GAAG,CAAC,EAAE,CAAC,CAAC;EACtD,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAAE,cAAO,EACV;IAAA,IAAAC,YAAA,EAAAC,aAAA;IAAA,oBACI9C,MAAA,CAAAQ,OAAA,CAAAuC,aAAA,CAAC7C,YAAA,CAAA8C,iBAAiB,QACbhB,UAAU,iBACPhC,MAAA,CAAAQ,OAAA,CAAAuC,aAAA,CAAC7C,YAAA,CAAA+C,6BAA6B;MAACC,OAAO,EAAEA,CAAA,KAAMnB,gBAAgB,CAACD,QAAQ,CAACqB,EAAE;IAAE,gBACxEnD,MAAA,CAAAQ,OAAA,CAAAuC,aAAA,CAAClD,KAAA,CAAAuD,IAAI;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAE,CAAC,UAAU;IAAE,CAAE,CACX,CAClC,EACA,CAACxB,QAAQ,CAACQ,KAAK,IAChBR,QAAQ,CAACQ,KAAK,KAAK,MAAM,IACxB,CAACR,QAAQ,CAACyB,UAAU,IAAI,CAACzB,QAAQ,CAACS,YAAa,GAAG,IAAI,gBACnDvC,MAAA,CAAAQ,OAAA,CAAAuC,aAAA,CAAChD,aAAA,CAAAyD,eAAe;MAACC,OAAO,EAAE;IAAM,GAC3B3B,QAAQ,CAACQ,KAAK,KAAK,WAAW,gBAC3BtC,MAAA,CAAAQ,OAAA,CAAAuC,aAAA,CAAC1C,YAAA,CAAAG,OAAW;MACRc,GAAG,EAAG,aAAU,CAAAuB,YAAA,GAAEf,QAAQ,CAACqB,EAAE,cAAAN,YAAA,cAAAA,YAAA,GAAI,EAAG,EAAE;MACtCf,QAAQ,EAAEA;IAAS,CACtB,CAAC,gBAEF9B,MAAA,CAAAQ,OAAA,CAAAuC,aAAA,CAAC5C,UAAA,CAAAK,OAAS;MACNc,GAAG,EAAG,YAAS,CAAAwB,aAAA,GAAEhB,QAAQ,CAACqB,EAAE,cAAAL,aAAA,cAAAA,aAAA,GAAI,EAAG,EAAE;MACrChB,QAAQ,EAAEA,QAAS;MACnBE,UAAU,EAAEA,UAAW;MACvBE,gBAAgB,EAAEA;IAAiB,CACtC,CAEQ,CACpB,EACAD,oBAAoB,iBACjBjC,MAAA,CAAAQ,OAAA,CAAAuC,aAAA,CAAC7C,YAAA,CAAAwD,mCAAmC,qBAChC1D,MAAA,CAAAQ,OAAA,CAAAuC,aAAA,YAAK,KAAId,oBAAoB,GAAG,CAAE,EAAK,CACN,CAE1B,CAAC;EAAA,CACvB,EACD,CAACH,QAAQ,EAAEC,gBAAgB,EAAEC,UAAU,EAAEE,gBAAgB,EAAED,oBAAoB,CACnF,CAAC;AACL,CAAC;AAEDL,WAAW,CAAC+B,WAAW,GAAG,aAAa;AAAC,IAAAC,QAAA,GAEzBhC,WAAW;AAAAiC,OAAA,CAAArD,OAAA,GAAAoD,QAAA"}
1
+ {"version":3,"file":"GalleryItem.js","names":["_core","require","_framerMotion","_react","_interopRequireWildcard","_GalleryItem","_MediaItem","_interopRequireDefault","_PreviewItem","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GalleryItem","_ref","fileItem","handleDeleteFile","isEditMode","remainingItemsLength","openSelectedFile","useCallback","file","_file$uploadedFile","state","uploadedFile","chayns","openVideo","url","openImage","useMemo","_fileItem$id","_fileItem$id2","createElement","StyledGalleryItem","StyledGalleryItemDeleteButton","onClick","id","Icon","size","icons","previewUrl","AnimatePresence","initial","StyledGalleryItemMoreItemsIndicator","displayName","_default","exports"],"sources":["../../../src/components/gallery-item/GalleryItem.tsx"],"sourcesContent":["import { Icon } from '@chayns-components/core';\nimport type { FileItem } from '@chayns-components/core/lib/types/file';\nimport { AnimatePresence } from 'framer-motion';\nimport React, { FC, useCallback, useMemo } from 'react';\nimport {\n StyledGalleryItem,\n StyledGalleryItemDeleteButton,\n StyledGalleryItemMoreItemsIndicator,\n} from './GalleryItem.styles';\nimport MediaItem from './media-item/MediaItem';\nimport PreviewItem from './preview-item/PreviewItem';\n\nexport type GalleryItemProps = {\n /**\n * Images and videos which should be displayed\n */\n fileItem: FileItem;\n /**\n * Whether images and videos can be edited\n */\n isEditMode: boolean;\n /**\n * Function to be executed when a file is deleted\n */\n handleDeleteFile: (id?: string) => void;\n /**\n * Length of the uploaded files\n */\n remainingItemsLength?: number;\n};\n\nconst GalleryItem: FC<GalleryItemProps> = ({\n fileItem,\n handleDeleteFile,\n isEditMode,\n remainingItemsLength,\n}) => {\n /**\n * This function opens a selected file\n */\n const openSelectedFile = useCallback((file: FileItem) => {\n if (file.state !== 'uploaded') {\n // ToDo add dialog that the file is not loaded yet\n\n return;\n }\n\n if (file.uploadedFile && 'thumbnailUrl' in file.uploadedFile) {\n // @ts-expect-error: Type is correct here\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access\n void chayns.openVideo(file.uploadedFile.url);\n\n return;\n }\n\n // @ts-expect-error: Type is correct here\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access\n void chayns.openImage([file.uploadedFile?.url], 0);\n }, []);\n\n return useMemo(\n () => (\n <StyledGalleryItem>\n {isEditMode && (\n <StyledGalleryItemDeleteButton onClick={() => handleDeleteFile(fileItem.id)}>\n <Icon size={20} icons={['ts-wrong']} />\n </StyledGalleryItemDeleteButton>\n )}\n {!fileItem.state ||\n fileItem.state === 'none' ||\n (!fileItem.previewUrl && !fileItem.uploadedFile) ? null : (\n <AnimatePresence initial={false}>\n {fileItem.state === 'uploading' ? (\n <PreviewItem\n key={`uploading_${fileItem.id ?? ''}`}\n fileItem={fileItem}\n />\n ) : (\n <MediaItem\n key={`uploaded_${fileItem.id ?? ''}`}\n fileItem={fileItem}\n isEditMode={isEditMode}\n openSelectedFile={openSelectedFile}\n />\n )}\n </AnimatePresence>\n )}\n {remainingItemsLength && (\n <StyledGalleryItemMoreItemsIndicator>\n <p>{`+ ${remainingItemsLength - 3}`}</p>\n </StyledGalleryItemMoreItemsIndicator>\n )}\n </StyledGalleryItem>\n ),\n [fileItem, handleDeleteFile, isEditMode, openSelectedFile, remainingItemsLength]\n );\n};\n\nGalleryItem.displayName = 'GalleryItem';\n\nexport default GalleryItem;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { FileItem } from '@chayns-components/core/src/types/file';
1
+ import type { FileItem } from '@chayns-components/core/lib/types/file';
2
2
  import { FC } from 'react';
3
3
  export type MediaItemProps = {
4
4
  /**
@@ -10,7 +10,7 @@ export type MediaItemProps = {
10
10
  */
11
11
  isEditMode: boolean;
12
12
  /**
13
- * Function to be executed wehen a file is selected
13
+ * Function to be executed when a file is selected
14
14
  */
15
15
  openSelectedFile: (file: FileItem) => void;
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MediaItem.js","names":["_core","require","_react","_interopRequireDefault","_MediaItem","obj","__esModule","default","MediaItem","_ref","_fileItem$uploadedFil","fileItem","isEditMode","openSelectedFile","createElement","StyledMotionMediaItem","animate","opacity","initial","exit","transition","duration","uploadedFile","StyledMediaItemVideoWrapper","onClick","StyledMediaItemPlayIcon","Icon","size","icons","StyledMediaItemVideo","src","url","type","StyledMediaItemImageWrapper","StyledMediaItemImage","draggable","displayName","_default","exports"],"sources":["../../../../src/components/gallery-item/media-item/MediaItem.tsx"],"sourcesContent":["import { Icon } from '@chayns-components/core';\nimport type { FileItem } from '@chayns-components/core/src/types/file';\nimport React, { FC } from 'react';\nimport {\n StyledMediaItemImage,\n StyledMediaItemImageWrapper,\n StyledMediaItemPlayIcon,\n StyledMediaItemVideo,\n StyledMediaItemVideoWrapper,\n StyledMotionMediaItem,\n} from './MediaItem.styles';\n\nexport type MediaItemProps = {\n /**\n * Images and videos which should be displayed\n */\n fileItem: FileItem;\n /**\n * Whether images and videos can be edited\n */\n isEditMode: boolean;\n /**\n * Function to be executed wehen a file is selected\n */\n openSelectedFile: (file: FileItem) => void;\n};\n\nconst MediaItem: FC<MediaItemProps> = ({ fileItem, isEditMode, openSelectedFile }) => (\n <StyledMotionMediaItem\n animate={{ opacity: 1 }}\n initial={{ opacity: 0 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 3.2 }}\n >\n {fileItem.uploadedFile && 'thumbnailUrl' in fileItem.uploadedFile ? (\n <StyledMediaItemVideoWrapper onClick={() => openSelectedFile(fileItem)}>\n <StyledMediaItemPlayIcon>\n <Icon size={isEditMode ? 30 : 50} icons={['fa fa-play']} />\n </StyledMediaItemPlayIcon>\n <StyledMediaItemVideo>\n <source src={fileItem.uploadedFile.url} type=\"video/mp4\" />\n </StyledMediaItemVideo>\n </StyledMediaItemVideoWrapper>\n ) : (\n <StyledMediaItemImageWrapper onClick={() => openSelectedFile(fileItem)}>\n <StyledMediaItemImage draggable={false} src={fileItem.uploadedFile?.url} />\n </StyledMediaItemImageWrapper>\n )}\n </StyledMotionMediaItem>\n);\n\nMediaItem.displayName = 'MediaItem';\n\nexport default MediaItem;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAO4B,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAiB5B,MAAMG,SAA6B,GAAGC,IAAA;EAAA,IAAAC,qBAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEC,UAAU;IAAEC;EAAiB,CAAC,GAAAJ,IAAA;EAAA,oBAC7EP,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAAW,qBAAqB;IAClBC,OAAO,EAAE;MAAEC,OAAO,EAAE;IAAE,CAAE;IACxBC,OAAO,EAAE;MAAED,OAAO,EAAE;IAAE,CAAE;IACxBE,IAAI,EAAE;MAAEF,OAAO,EAAE;IAAE,CAAE;IACrBG,UAAU,EAAE;MAAEC,QAAQ,EAAE;IAAI;EAAE,GAE7BV,QAAQ,CAACW,YAAY,IAAI,cAAc,IAAIX,QAAQ,CAACW,YAAY,gBAC7DpB,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAAmB,2BAA2B;IAACC,OAAO,EAAEA,CAAA,KAAMX,gBAAgB,CAACF,QAAQ;EAAE,gBACnET,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAAqB,uBAAuB,qBACpBvB,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACd,KAAA,CAAA0B,IAAI;IAACC,IAAI,EAAEf,UAAU,GAAG,EAAE,GAAG,EAAG;IAACgB,KAAK,EAAE,CAAC,YAAY;EAAE,CAAE,CACrC,CAAC,eAC1B1B,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAAyB,oBAAoB,qBACjB3B,MAAA,CAAAK,OAAA,CAAAO,aAAA;IAAQgB,GAAG,EAAEnB,QAAQ,CAACW,YAAY,CAACS,GAAI;IAACC,IAAI,EAAC;EAAW,CAAE,CACxC,CACG,CAAC,gBAE9B9B,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAA6B,2BAA2B;IAACT,OAAO,EAAEA,CAAA,KAAMX,gBAAgB,CAACF,QAAQ;EAAE,gBACnET,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAA8B,oBAAoB;IAACC,SAAS,EAAE,KAAM;IAACL,GAAG,GAAApB,qBAAA,GAAEC,QAAQ,CAACW,YAAY,cAAAZ,qBAAA,uBAArBA,qBAAA,CAAuBqB;EAAI,CAAE,CACjD,CAEd,CAAC;AAAA,CAC3B;AAEDvB,SAAS,CAAC4B,WAAW,GAAG,WAAW;AAAC,IAAAC,QAAA,GAErB7B,SAAS;AAAA8B,OAAA,CAAA/B,OAAA,GAAA8B,QAAA"}
1
+ {"version":3,"file":"MediaItem.js","names":["_core","require","_react","_interopRequireDefault","_MediaItem","obj","__esModule","default","MediaItem","_ref","_fileItem$uploadedFil","fileItem","isEditMode","openSelectedFile","createElement","StyledMotionMediaItem","animate","opacity","initial","exit","transition","duration","uploadedFile","StyledMediaItemVideoWrapper","onClick","StyledMediaItemPlayIcon","Icon","size","icons","StyledMediaItemVideo","src","url","type","StyledMediaItemImageWrapper","StyledMediaItemImage","draggable","displayName","_default","exports"],"sources":["../../../../src/components/gallery-item/media-item/MediaItem.tsx"],"sourcesContent":["import { Icon } from '@chayns-components/core';\nimport type { FileItem } from '@chayns-components/core/lib/types/file';\nimport React, { FC } from 'react';\nimport {\n StyledMediaItemImage,\n StyledMediaItemImageWrapper,\n StyledMediaItemPlayIcon,\n StyledMediaItemVideo,\n StyledMediaItemVideoWrapper,\n StyledMotionMediaItem,\n} from './MediaItem.styles';\n\nexport type MediaItemProps = {\n /**\n * Images and videos which should be displayed\n */\n fileItem: FileItem;\n /**\n * Whether images and videos can be edited\n */\n isEditMode: boolean;\n /**\n * Function to be executed when a file is selected\n */\n openSelectedFile: (file: FileItem) => void;\n};\n\nconst MediaItem: FC<MediaItemProps> = ({ fileItem, isEditMode, openSelectedFile }) => (\n <StyledMotionMediaItem\n animate={{ opacity: 1 }}\n initial={{ opacity: 0 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 3.2 }}\n >\n {fileItem.uploadedFile && 'thumbnailUrl' in fileItem.uploadedFile ? (\n <StyledMediaItemVideoWrapper onClick={() => openSelectedFile(fileItem)}>\n <StyledMediaItemPlayIcon>\n <Icon size={isEditMode ? 30 : 50} icons={['fa fa-play']} />\n </StyledMediaItemPlayIcon>\n <StyledMediaItemVideo>\n <source src={fileItem.uploadedFile.url} type=\"video/mp4\" />\n </StyledMediaItemVideo>\n </StyledMediaItemVideoWrapper>\n ) : (\n <StyledMediaItemImageWrapper onClick={() => openSelectedFile(fileItem)}>\n <StyledMediaItemImage draggable={false} src={fileItem.uploadedFile?.url} />\n </StyledMediaItemImageWrapper>\n )}\n </StyledMotionMediaItem>\n);\n\nMediaItem.displayName = 'MediaItem';\n\nexport default MediaItem;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAO4B,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAiB5B,MAAMG,SAA6B,GAAGC,IAAA;EAAA,IAAAC,qBAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEC,UAAU;IAAEC;EAAiB,CAAC,GAAAJ,IAAA;EAAA,oBAC7EP,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAAW,qBAAqB;IAClBC,OAAO,EAAE;MAAEC,OAAO,EAAE;IAAE,CAAE;IACxBC,OAAO,EAAE;MAAED,OAAO,EAAE;IAAE,CAAE;IACxBE,IAAI,EAAE;MAAEF,OAAO,EAAE;IAAE,CAAE;IACrBG,UAAU,EAAE;MAAEC,QAAQ,EAAE;IAAI;EAAE,GAE7BV,QAAQ,CAACW,YAAY,IAAI,cAAc,IAAIX,QAAQ,CAACW,YAAY,gBAC7DpB,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAAmB,2BAA2B;IAACC,OAAO,EAAEA,CAAA,KAAMX,gBAAgB,CAACF,QAAQ;EAAE,gBACnET,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAAqB,uBAAuB,qBACpBvB,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACd,KAAA,CAAA0B,IAAI;IAACC,IAAI,EAAEf,UAAU,GAAG,EAAE,GAAG,EAAG;IAACgB,KAAK,EAAE,CAAC,YAAY;EAAE,CAAE,CACrC,CAAC,eAC1B1B,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAAyB,oBAAoB,qBACjB3B,MAAA,CAAAK,OAAA,CAAAO,aAAA;IAAQgB,GAAG,EAAEnB,QAAQ,CAACW,YAAY,CAACS,GAAI;IAACC,IAAI,EAAC;EAAW,CAAE,CACxC,CACG,CAAC,gBAE9B9B,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAA6B,2BAA2B;IAACT,OAAO,EAAEA,CAAA,KAAMX,gBAAgB,CAACF,QAAQ;EAAE,gBACnET,MAAA,CAAAK,OAAA,CAAAO,aAAA,CAACV,UAAA,CAAA8B,oBAAoB;IAACC,SAAS,EAAE,KAAM;IAACL,GAAG,GAAApB,qBAAA,GAAEC,QAAQ,CAACW,YAAY,cAAAZ,qBAAA,uBAArBA,qBAAA,CAAuBqB;EAAI,CAAE,CACjD,CAEd,CAAC;AAAA,CAC3B;AAEDvB,SAAS,CAAC4B,WAAW,GAAG,WAAW;AAAC,IAAAC,QAAA,GAErB7B,SAAS;AAAA8B,OAAA,CAAA/B,OAAA,GAAA8B,QAAA"}
@@ -1,4 +1,4 @@
1
- import type { FileItem } from '@chayns-components/core/src/types/file';
1
+ import type { FileItem } from '@chayns-components/core/lib/types/file';
2
2
  import { FC } from 'react';
3
3
  export type PreviewItemProps = {
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewItem.js","names":["_core","require","_react","_interopRequireDefault","_PreviewItem","obj","__esModule","default","PreviewItem","_ref","fileItem","createElement","StyledMotionPreviewItem","animate","opacity","initial","exit","transition","duration","delay","style","position","StyledPreviewItemImageWrapper","StyledPreviewItemLoadingIcon","SmallWaitCursor","shouldShowWaitCursor","shouldShowBackground","StyledPreviewItemImage","draggable","src","previewUrl","displayName","_default","exports"],"sources":["../../../../src/components/gallery-item/preview-item/PreviewItem.tsx"],"sourcesContent":["import { SmallWaitCursor } from '@chayns-components/core';\nimport type { FileItem } from '@chayns-components/core/src/types/file';\nimport React, { FC } from 'react';\nimport {\n StyledMotionPreviewItem,\n StyledPreviewItemImage,\n StyledPreviewItemImageWrapper,\n StyledPreviewItemLoadingIcon,\n} from './PreviewItem.styles';\n\nexport type PreviewItemProps = {\n /**\n * Images and videos which should be displayed\n */\n fileItem: FileItem;\n};\n\nconst PreviewItem: FC<PreviewItemProps> = ({ fileItem }) => (\n <StyledMotionPreviewItem\n animate={{ opacity: 1 }}\n initial={{ opacity: 0 }}\n exit={{\n opacity: 0,\n transition: { duration: 3.2, delay: 3.2 },\n }}\n transition={{ duration: 3.2 }}\n style={{ position: 'absolute' }}\n >\n <StyledPreviewItemImageWrapper>\n <StyledPreviewItemLoadingIcon>\n <SmallWaitCursor shouldShowWaitCursor shouldShowBackground={false} />\n </StyledPreviewItemLoadingIcon>\n <StyledPreviewItemImage draggable={false} src={fileItem.previewUrl} />\n </StyledPreviewItemImageWrapper>\n </StyledMotionPreviewItem>\n);\n\nPreviewItem.displayName = 'PreviewItem';\n\nexport default PreviewItem;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAK8B,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAS9B,MAAMG,WAAiC,GAAGC,IAAA;EAAA,IAAC;IAAEC;EAAS,CAAC,GAAAD,IAAA;EAAA,oBACnDP,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACP,YAAA,CAAAQ,uBAAuB;IACpBC,OAAO,EAAE;MAAEC,OAAO,EAAE;IAAE,CAAE;IACxBC,OAAO,EAAE;MAAED,OAAO,EAAE;IAAE,CAAE;IACxBE,IAAI,EAAE;MACFF,OAAO,EAAE,CAAC;MACVG,UAAU,EAAE;QAAEC,QAAQ,EAAE,GAAG;QAAEC,KAAK,EAAE;MAAI;IAC5C,CAAE;IACFF,UAAU,EAAE;MAAEC,QAAQ,EAAE;IAAI,CAAE;IAC9BE,KAAK,EAAE;MAAEC,QAAQ,EAAE;IAAW;EAAE,gBAEhCnB,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACP,YAAA,CAAAkB,6BAA6B,qBAC1BpB,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACP,YAAA,CAAAmB,4BAA4B,qBACzBrB,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACX,KAAA,CAAAwB,eAAe;IAACC,oBAAoB;IAACC,oBAAoB,EAAE;EAAM,CAAE,CAC1C,CAAC,eAC/BxB,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACP,YAAA,CAAAuB,sBAAsB;IAACC,SAAS,EAAE,KAAM;IAACC,GAAG,EAAEnB,QAAQ,CAACoB;EAAW,CAAE,CAC1C,CACV,CAAC;AAAA,CAC7B;AAEDtB,WAAW,CAACuB,WAAW,GAAG,aAAa;AAAC,IAAAC,QAAA,GAEzBxB,WAAW;AAAAyB,OAAA,CAAA1B,OAAA,GAAAyB,QAAA"}
1
+ {"version":3,"file":"PreviewItem.js","names":["_core","require","_react","_interopRequireDefault","_PreviewItem","obj","__esModule","default","PreviewItem","_ref","fileItem","createElement","StyledMotionPreviewItem","animate","opacity","initial","exit","transition","duration","delay","style","position","StyledPreviewItemImageWrapper","StyledPreviewItemLoadingIcon","SmallWaitCursor","shouldShowWaitCursor","shouldShowBackground","StyledPreviewItemImage","draggable","src","previewUrl","displayName","_default","exports"],"sources":["../../../../src/components/gallery-item/preview-item/PreviewItem.tsx"],"sourcesContent":["import { SmallWaitCursor } from '@chayns-components/core';\nimport type { FileItem } from '@chayns-components/core/lib/types/file';\nimport React, { FC } from 'react';\nimport {\n StyledMotionPreviewItem,\n StyledPreviewItemImage,\n StyledPreviewItemImageWrapper,\n StyledPreviewItemLoadingIcon,\n} from './PreviewItem.styles';\n\nexport type PreviewItemProps = {\n /**\n * Images and videos which should be displayed\n */\n fileItem: FileItem;\n};\n\nconst PreviewItem: FC<PreviewItemProps> = ({ fileItem }) => (\n <StyledMotionPreviewItem\n animate={{ opacity: 1 }}\n initial={{ opacity: 0 }}\n exit={{\n opacity: 0,\n transition: { duration: 3.2, delay: 3.2 },\n }}\n transition={{ duration: 3.2 }}\n style={{ position: 'absolute' }}\n >\n <StyledPreviewItemImageWrapper>\n <StyledPreviewItemLoadingIcon>\n <SmallWaitCursor shouldShowWaitCursor shouldShowBackground={false} />\n </StyledPreviewItemLoadingIcon>\n <StyledPreviewItemImage draggable={false} src={fileItem.previewUrl} />\n </StyledPreviewItemImageWrapper>\n </StyledMotionPreviewItem>\n);\n\nPreviewItem.displayName = 'PreviewItem';\n\nexport default PreviewItem;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAK8B,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAS9B,MAAMG,WAAiC,GAAGC,IAAA;EAAA,IAAC;IAAEC;EAAS,CAAC,GAAAD,IAAA;EAAA,oBACnDP,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACP,YAAA,CAAAQ,uBAAuB;IACpBC,OAAO,EAAE;MAAEC,OAAO,EAAE;IAAE,CAAE;IACxBC,OAAO,EAAE;MAAED,OAAO,EAAE;IAAE,CAAE;IACxBE,IAAI,EAAE;MACFF,OAAO,EAAE,CAAC;MACVG,UAAU,EAAE;QAAEC,QAAQ,EAAE,GAAG;QAAEC,KAAK,EAAE;MAAI;IAC5C,CAAE;IACFF,UAAU,EAAE;MAAEC,QAAQ,EAAE;IAAI,CAAE;IAC9BE,KAAK,EAAE;MAAEC,QAAQ,EAAE;IAAW;EAAE,gBAEhCnB,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACP,YAAA,CAAAkB,6BAA6B,qBAC1BpB,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACP,YAAA,CAAAmB,4BAA4B,qBACzBrB,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACX,KAAA,CAAAwB,eAAe;IAACC,oBAAoB;IAACC,oBAAoB,EAAE;EAAM,CAAE,CAC1C,CAAC,eAC/BxB,MAAA,CAAAK,OAAA,CAAAI,aAAA,CAACP,YAAA,CAAAuB,sBAAsB;IAACC,SAAS,EAAE,KAAM;IAACC,GAAG,EAAEnB,QAAQ,CAACoB;EAAW,CAAE,CAC1C,CACV,CAAC;AAAA,CAC7B;AAEDtB,WAAW,CAACuB,WAAW,GAAG,aAAa;AAAC,IAAAC,QAAA,GAEzBxB,WAAW;AAAAyB,OAAA,CAAA1B,OAAA,GAAAyB,QAAA"}
package/lib/index.d.ts CHANGED
@@ -1,2 +1 @@
1
- export type { FileItem, Image, Meta, Video } from '@chayns-components/core/src/types/file';
2
1
  export { default as Gallery } from './components/Gallery';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_Gallery","_interopRequireDefault","require","obj","__esModule","default"],"sources":["../src/index.ts"],"sourcesContent":["export type { FileItem, Image, Meta, Video } from '@chayns-components/core/src/types/file';\nexport { default as Gallery } from './components/Gallery';\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0D,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
1
+ {"version":3,"file":"index.js","names":["_Gallery","_interopRequireDefault","require","obj","__esModule","default"],"sources":["../src/index.ts"],"sourcesContent":["// noinspection JSUnusedGlobalSymbols\n\nexport { default as Gallery } from './components/Gallery';\n"],"mappings":";;;;;;;;;;;AAEA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0D,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
@@ -1,4 +1,4 @@
1
- import type { FileItem } from '@chayns-components/core/src/types/file';
1
+ import type { FileItem } from '@chayns-components/core/lib/types/file';
2
2
  interface FilerDuplicateFileOptions {
3
3
  files: FileItem[];
4
4
  newFile: File;
package/lib/utils/file.js CHANGED
@@ -4,25 +4,27 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.generateVideoThumbnail = exports.generatePreviewUrl = exports.filterDuplicateFile = void 0;
7
+ // TODO: Check why absolute import is needed
8
+
7
9
  const filterDuplicateFile = _ref => {
8
10
  let {
9
11
  newFile,
10
12
  files
11
13
  } = _ref;
12
- const duplicates = files.filter(fileItem => {
13
- const {
14
+ const duplicates = files.filter(_ref2 => {
15
+ let {
14
16
  file
15
- } = fileItem;
17
+ } = _ref2;
16
18
  return file && file.name === newFile.name && file.size === newFile.size;
17
19
  });
18
20
  return duplicates.length > 0;
19
21
  };
20
22
  exports.filterDuplicateFile = filterDuplicateFile;
21
- const generatePreviewUrl = _ref2 => {
23
+ const generatePreviewUrl = _ref3 => {
22
24
  let {
23
25
  callback,
24
26
  file
25
- } = _ref2;
27
+ } = _ref3;
26
28
  const reader = new FileReader();
27
29
  reader.onload = event => {
28
30
  var _event$target;
@@ -32,11 +34,11 @@ const generatePreviewUrl = _ref2 => {
32
34
  reader.readAsDataURL(file);
33
35
  };
34
36
  exports.generatePreviewUrl = generatePreviewUrl;
35
- const generateVideoThumbnail = _ref3 => {
37
+ const generateVideoThumbnail = _ref4 => {
36
38
  let {
37
39
  file,
38
40
  callback
39
- } = _ref3;
41
+ } = _ref4;
40
42
  const canvas = document.createElement('canvas');
41
43
  const video = document.createElement('video');
42
44
 
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","names":["filterDuplicateFile","_ref","newFile","files","duplicates","filter","fileItem","file","name","size","length","exports","generatePreviewUrl","_ref2","callback","reader","FileReader","onload","event","_event$target","previewUrl","target","result","readAsDataURL","generateVideoThumbnail","_ref3","canvas","document","createElement","video","autoplay","muted","src","URL","createObjectURL","onloadeddata","ctx","getContext","width","videoWidth","height","videoHeight","drawImage","pause","toDataURL"],"sources":["../../src/utils/file.ts"],"sourcesContent":["import type { FileItem } from '@chayns-components/core/src/types/file';\n\ninterface FilerDuplicateFileOptions {\n files: FileItem[];\n newFile: File;\n}\n\nexport const filterDuplicateFile = ({ newFile, files }: FilerDuplicateFileOptions) => {\n const duplicates = files.filter((fileItem) => {\n const { file } = fileItem;\n return file && file.name === newFile.name && file.size === newFile.size;\n });\n\n return duplicates.length > 0;\n};\n\ninterface GeneratePreviewUrlOptions {\n file: File;\n callback: (previewUrl: string) => void;\n}\n\nexport const generatePreviewUrl = ({ callback, file }: GeneratePreviewUrlOptions): void => {\n const reader = new FileReader();\n\n reader.onload = (event) => {\n const previewUrl = event.target?.result as string;\n\n callback(previewUrl);\n };\n\n reader.readAsDataURL(file);\n};\n\ninterface GenerateVideoThumbnailOptions {\n file: File;\n callback: (previewUrl: string) => void;\n}\n\nexport const generateVideoThumbnail = ({ file, callback }: GenerateVideoThumbnailOptions) => {\n const canvas = document.createElement('canvas');\n const video = document.createElement('video');\n\n // this is important\n video.autoplay = true;\n video.muted = true;\n video.src = URL.createObjectURL(file);\n\n video.onloadeddata = () => {\n const ctx = canvas.getContext('2d');\n\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n\n ctx?.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);\n video.pause();\n\n callback(canvas.toDataURL('image/png'));\n };\n};\n"],"mappings":";;;;;;AAOO,MAAMA,mBAAmB,GAAGC,IAAA,IAAmD;EAAA,IAAlD;IAAEC,OAAO;IAAEC;EAAiC,CAAC,GAAAF,IAAA;EAC7E,MAAMG,UAAU,GAAGD,KAAK,CAACE,MAAM,CAAEC,QAAQ,IAAK;IAC1C,MAAM;MAAEC;IAAK,CAAC,GAAGD,QAAQ;IACzB,OAAOC,IAAI,IAAIA,IAAI,CAACC,IAAI,KAAKN,OAAO,CAACM,IAAI,IAAID,IAAI,CAACE,IAAI,KAAKP,OAAO,CAACO,IAAI;EAC3E,CAAC,CAAC;EAEF,OAAOL,UAAU,CAACM,MAAM,GAAG,CAAC;AAChC,CAAC;AAACC,OAAA,CAAAX,mBAAA,GAAAA,mBAAA;AAOK,MAAMY,kBAAkB,GAAGC,KAAA,IAAyD;EAAA,IAAxD;IAAEC,QAAQ;IAAEP;EAAgC,CAAC,GAAAM,KAAA;EAC5E,MAAME,MAAM,GAAG,IAAIC,UAAU,CAAC,CAAC;EAE/BD,MAAM,CAACE,MAAM,GAAIC,KAAK,IAAK;IAAA,IAAAC,aAAA;IACvB,MAAMC,UAAU,IAAAD,aAAA,GAAGD,KAAK,CAACG,MAAM,cAAAF,aAAA,uBAAZA,aAAA,CAAcG,MAAgB;IAEjDR,QAAQ,CAACM,UAAU,CAAC;EACxB,CAAC;EAEDL,MAAM,CAACQ,aAAa,CAAChB,IAAI,CAAC;AAC9B,CAAC;AAACI,OAAA,CAAAC,kBAAA,GAAAA,kBAAA;AAOK,MAAMY,sBAAsB,GAAGC,KAAA,IAAuD;EAAA,IAAtD;IAAElB,IAAI;IAAEO;EAAwC,CAAC,GAAAW,KAAA;EACpF,MAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;EAC/C,MAAMC,KAAK,GAAGF,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;;EAE7C;EACAC,KAAK,CAACC,QAAQ,GAAG,IAAI;EACrBD,KAAK,CAACE,KAAK,GAAG,IAAI;EAClBF,KAAK,CAACG,GAAG,GAAGC,GAAG,CAACC,eAAe,CAAC3B,IAAI,CAAC;EAErCsB,KAAK,CAACM,YAAY,GAAG,MAAM;IACvB,MAAMC,GAAG,GAAGV,MAAM,CAACW,UAAU,CAAC,IAAI,CAAC;IAEnCX,MAAM,CAACY,KAAK,GAAGT,KAAK,CAACU,UAAU;IAC/Bb,MAAM,CAACc,MAAM,GAAGX,KAAK,CAACY,WAAW;IAEjCL,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEM,SAAS,CAACb,KAAK,EAAE,CAAC,EAAE,CAAC,EAAEA,KAAK,CAACU,UAAU,EAAEV,KAAK,CAACY,WAAW,CAAC;IAChEZ,KAAK,CAACc,KAAK,CAAC,CAAC;IAEb7B,QAAQ,CAACY,MAAM,CAACkB,SAAS,CAAC,WAAW,CAAC,CAAC;EAC3C,CAAC;AACL,CAAC;AAACjC,OAAA,CAAAa,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"file":"file.js","names":["filterDuplicateFile","_ref","newFile","files","duplicates","filter","_ref2","file","name","size","length","exports","generatePreviewUrl","_ref3","callback","reader","FileReader","onload","event","_event$target","previewUrl","target","result","readAsDataURL","generateVideoThumbnail","_ref4","canvas","document","createElement","video","autoplay","muted","src","URL","createObjectURL","onloadeddata","ctx","getContext","width","videoWidth","height","videoHeight","drawImage","pause","toDataURL"],"sources":["../../src/utils/file.ts"],"sourcesContent":["import type { FileItem } from '@chayns-components/core/lib/types/file'; // TODO: Check why absolute import is needed\n\ninterface FilerDuplicateFileOptions {\n files: FileItem[];\n newFile: File;\n}\n\nexport const filterDuplicateFile = ({ newFile, files }: FilerDuplicateFileOptions) => {\n const duplicates = files.filter(\n ({ file }) => file && file.name === newFile.name && file.size === newFile.size\n );\n\n return duplicates.length > 0;\n};\n\ninterface GeneratePreviewUrlOptions {\n file: File;\n callback: (previewUrl: string) => void;\n}\n\nexport const generatePreviewUrl = ({ callback, file }: GeneratePreviewUrlOptions): void => {\n const reader = new FileReader();\n\n reader.onload = (event) => {\n const previewUrl = event.target?.result as string;\n\n callback(previewUrl);\n };\n\n reader.readAsDataURL(file);\n};\n\ninterface GenerateVideoThumbnailOptions {\n file: File;\n callback: (previewUrl: string) => void;\n}\n\nexport const generateVideoThumbnail = ({ file, callback }: GenerateVideoThumbnailOptions) => {\n const canvas = document.createElement('canvas');\n const video = document.createElement('video');\n\n // this is important\n video.autoplay = true;\n video.muted = true;\n video.src = URL.createObjectURL(file);\n\n video.onloadeddata = () => {\n const ctx = canvas.getContext('2d');\n\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n\n ctx?.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);\n video.pause();\n\n callback(canvas.toDataURL('image/png'));\n };\n};\n"],"mappings":";;;;;;AAAwE;;AAOjE,MAAMA,mBAAmB,GAAGC,IAAA,IAAmD;EAAA,IAAlD;IAAEC,OAAO;IAAEC;EAAiC,CAAC,GAAAF,IAAA;EAC7E,MAAMG,UAAU,GAAGD,KAAK,CAACE,MAAM,CAC3BC,KAAA;IAAA,IAAC;MAAEC;IAAK,CAAC,GAAAD,KAAA;IAAA,OAAKC,IAAI,IAAIA,IAAI,CAACC,IAAI,KAAKN,OAAO,CAACM,IAAI,IAAID,IAAI,CAACE,IAAI,KAAKP,OAAO,CAACO,IAAI;EAAA,CAClF,CAAC;EAED,OAAOL,UAAU,CAACM,MAAM,GAAG,CAAC;AAChC,CAAC;AAACC,OAAA,CAAAX,mBAAA,GAAAA,mBAAA;AAOK,MAAMY,kBAAkB,GAAGC,KAAA,IAAyD;EAAA,IAAxD;IAAEC,QAAQ;IAAEP;EAAgC,CAAC,GAAAM,KAAA;EAC5E,MAAME,MAAM,GAAG,IAAIC,UAAU,CAAC,CAAC;EAE/BD,MAAM,CAACE,MAAM,GAAIC,KAAK,IAAK;IAAA,IAAAC,aAAA;IACvB,MAAMC,UAAU,IAAAD,aAAA,GAAGD,KAAK,CAACG,MAAM,cAAAF,aAAA,uBAAZA,aAAA,CAAcG,MAAgB;IAEjDR,QAAQ,CAACM,UAAU,CAAC;EACxB,CAAC;EAEDL,MAAM,CAACQ,aAAa,CAAChB,IAAI,CAAC;AAC9B,CAAC;AAACI,OAAA,CAAAC,kBAAA,GAAAA,kBAAA;AAOK,MAAMY,sBAAsB,GAAGC,KAAA,IAAuD;EAAA,IAAtD;IAAElB,IAAI;IAAEO;EAAwC,CAAC,GAAAW,KAAA;EACpF,MAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;EAC/C,MAAMC,KAAK,GAAGF,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;;EAE7C;EACAC,KAAK,CAACC,QAAQ,GAAG,IAAI;EACrBD,KAAK,CAACE,KAAK,GAAG,IAAI;EAClBF,KAAK,CAACG,GAAG,GAAGC,GAAG,CAACC,eAAe,CAAC3B,IAAI,CAAC;EAErCsB,KAAK,CAACM,YAAY,GAAG,MAAM;IACvB,MAAMC,GAAG,GAAGV,MAAM,CAACW,UAAU,CAAC,IAAI,CAAC;IAEnCX,MAAM,CAACY,KAAK,GAAGT,KAAK,CAACU,UAAU;IAC/Bb,MAAM,CAACc,MAAM,GAAGX,KAAK,CAACY,WAAW;IAEjCL,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEM,SAAS,CAACb,KAAK,EAAE,CAAC,EAAE,CAAC,EAAEA,KAAK,CAACU,UAAU,EAAEV,KAAK,CAACY,WAAW,CAAC;IAChEZ,KAAK,CAACc,KAAK,CAAC,CAAC;IAEb7B,QAAQ,CAACY,MAAM,CAACkB,SAAS,CAAC,WAAW,CAAC,CAAC;EAC3C,CAAC;AACL,CAAC;AAACjC,OAAA,CAAAa,sBAAA,GAAAA,sBAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/gallery",
3
- "version": "5.0.0-beta.199",
3
+ "version": "5.0.0-beta.200",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "keywords": [
6
6
  "chayns",
@@ -50,7 +50,7 @@
50
50
  "typescript": "^4.9.5"
51
51
  },
52
52
  "dependencies": {
53
- "@chayns-components/core": "^5.0.0-beta.199",
53
+ "@chayns-components/core": "^5.0.0-beta.200",
54
54
  "@chayns/colors": "^2.0.0",
55
55
  "clsx": "^1.2.1",
56
56
  "framer-motion": "^6.5.1",
@@ -64,5 +64,5 @@
64
64
  "publishConfig": {
65
65
  "access": "public"
66
66
  },
67
- "gitHead": "93ddcda5cb6a004ee86b781af8a31bea4fd3a715"
67
+ "gitHead": "bae5f0ef22c2fae26f2b29daa7ec92eaf3d03638"
68
68
  }