* Get files from data transfer object and insert related Tools * * @param {FileList} items - pasted or dropped items
(items: FileList)
| 510 | * @param {FileList} items - pasted or dropped items |
| 511 | */ |
| 512 | private async processFiles(items: FileList): Promise<void> { |
| 513 | const { BlockManager } = this.Editor; |
| 514 | |
| 515 | let dataToInsert: { type: string; event: PasteEvent }[]; |
| 516 | |
| 517 | dataToInsert = await Promise.all( |
| 518 | Array |
| 519 | .from(items) |
| 520 | .map((item) => this.processFile(item)) |
| 521 | ); |
| 522 | dataToInsert = dataToInsert.filter((data) => !!data); |
| 523 | |
| 524 | const isCurrentBlockDefault = BlockManager.currentBlock.tool.isDefault; |
| 525 | const needToReplaceCurrentBlock = isCurrentBlockDefault && BlockManager.currentBlock.isEmpty; |
| 526 | |
| 527 | dataToInsert.forEach( |
| 528 | (data, i) => { |
| 529 | BlockManager.paste(data.type, data.event, i === 0 && needToReplaceCurrentBlock); |
| 530 | } |
| 531 | ); |
| 532 | } |
| 533 | |
| 534 | /** |
| 535 | * Get information about file and find Tool to handle it |
no test coverage detected