Copy & paste data
object-table v3 introduces the ability to copy data from external spreadsheets (e.g. Microsoft Excel) and paste it into an object-table.
To enable pasting data into a table, set up an on-paste attribute similar to this example:
<object-table on-paste="$:handlePasteEvent($selection, $selectionMatrix, parsed)">
<column display="{field}" heading="Column 1" />
</object-table>$selection contains a payload representing the currently selected cells:
$selection = [
{
column: string,
key: string,
$object: DatabaseObject(...)
},
{
column: string,
key: string,
$object: DatabaseObject(...)
}
]$selectionMatrix contains a trimmed 2D payload representing the currently selected cells in the same dimensions as they are currently selected in the table:
$selection = [
[{
column: string,
key: string,
$object: DatabaseObject(...)
}],
[{
column: string,
key: string,
$object: DatabaseObject(...)
}]
]The above payload represents a table where the first and 2nd cell in a table is selected (made possible with pressing shift and select).
The parsed payload will contain a best-effort interpretation of mime types that JourneyApps understands. Data can naturally be copied from anywhere on a user's device (including spreadsheet software), so the data types of the copied data is inferred and matched as closely as possible to data types matching JourneyApps.
In the below example, a copied table in the type text/plain is detected. A 2D array of the copied data is provided, where each cell is a JSON object with original (original value), parsed (parsed/inferred value) and type which contains a string representation of the inferred type.
A developer can then handle the copied data and decide which version to use to paste values into the table.
parsed = {
`text/plain`: {
data: [
// row 1
[ { original: "1234", parsed: 1234, type: 'number' } ],
// row 2
[ { original: "1234", parsed: 1234, type: 'number' } ],
...
],
// width of the parsed table
width: number,
// height of the parsed table
height: number,
// a boolean (convenience) property indicating whether the
// copied data matches the dimensions of the cells selected in the Journey object-table
sameDimensions: boolean
},
...
}Last updated
