UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 7.85 kB
{ "version": 3, "sources": ["../../src/file/transforms.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\nimport { select } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { getFilename } from '@wordpress/url';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn files.length > 0;\n\t\t\t},\n\t\t\t// We define a lower priority (higher number) than the default of 10. This\n\t\t\t// ensures that the File block is only created as a fallback.\n\t\t\tpriority: 15,\n\t\t\ttransform: ( files ) => {\n\t\t\t\tconst blocks = [];\n\n\t\t\t\tfiles.forEach( ( file ) => {\n\t\t\t\t\tconst blobURL = createBlobURL( file );\n\n\t\t\t\t\t// File will be uploaded in componentDidMount()\n\t\t\t\t\tif ( file.type.startsWith( 'video/' ) ) {\n\t\t\t\t\t\tblocks.push(\n\t\t\t\t\t\t\tcreateBlock( 'core/video', {\n\t\t\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( file.type.startsWith( 'image/' ) ) {\n\t\t\t\t\t\tblocks.push(\n\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( file.type.startsWith( 'audio/' ) ) {\n\t\t\t\t\t\tblocks.push(\n\t\t\t\t\t\t\tcreateBlock( 'core/audio', {\n\t\t\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tblocks.push(\n\t\t\t\t\t\t\tcreateBlock( 'core/file', {\n\t\t\t\t\t\t\t\tblob: blobURL,\n\t\t\t\t\t\t\t\tfileName: file.name,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn blocks;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/audio' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\thref: attributes.src,\n\t\t\t\t\tfileName: attributes.caption,\n\t\t\t\t\ttextLinkHref: attributes.src,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\thref: attributes.src,\n\t\t\t\t\tfileName: attributes.caption,\n\t\t\t\t\ttextLinkHref: attributes.src,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\thref: attributes.url,\n\t\t\t\t\tfileName:\n\t\t\t\t\t\tattributes.caption || getFilename( attributes.url ),\n\t\t\t\t\ttextLinkHref: attributes.url,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/audio' ],\n\t\t\tisMatch: ( { id } ) => {\n\t\t\t\tif ( ! id ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\t\tconst media = getEntityRecord( 'postType', 'attachment', id );\n\t\t\t\treturn !! media && media.mime_type.includes( 'audio' );\n\t\t\t},\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/audio', {\n\t\t\t\t\tsrc: attributes.href,\n\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\tisMatch: ( { id } ) => {\n\t\t\t\tif ( ! id ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\t\tconst media = getEntityRecord( 'postType', 'attachment', id );\n\t\t\t\treturn !! media && media.mime_type.includes( 'video' );\n\t\t\t},\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/video', {\n\t\t\t\t\tsrc: attributes.href,\n\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\tisMatch: ( { id } ) => {\n\t\t\t\tif ( ! id ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\t\tconst media = getEntityRecord( 'postType', 'attachment', id );\n\t\t\t\treturn !! media && media.mime_type.includes( 'image' );\n\t\t\t},\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl: attributes.href,\n\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"], "mappings": "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", "names": ["coreStore"] }