* Copyright (c) 2023 - present TinyEngine Authors.
* Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.
*
* Use of this source code is governed by an MIT-style license.
*
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
*
*/
* 复制节点的schema对象到剪切板,以String形式保存
* @param {*} event ClipboardEvent
* @param {*} node 节点的schema对象
* @return 复制的剪切板的String
*/
export const setClipboardSchema = (event, node) => {
let text
if (typeof node === 'object') {
text = JSON.stringify(node)
} else {
text = String(node)
}
event.clipboardData.setData('text/plain', text)
event.preventDefault()
return text
}
const translateStringToSchema = (clipText) => {
if (!clipText) {
return null
}
let data
try {
data = JSON.parse(clipText)
if (!data || !data.componentName) {
data = null
}
} catch (error) {
data = null
}
return data
}
* 获得剪切板的内容,转换成schema
* @param {*} event ClipboardEvent
* @return 节点的schema对象
*/
export const getClipboardSchema = (event) => translateStringToSchema(event.clipboardData.getData('text/plain'))