|
|
@ -9579,7 +9579,9 @@ const SidebarStyle = qe.div` |
|
|
visibility: visible; |
|
|
visibility: visible; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
pre { |
|
|
pre, textarea { |
|
|
|
|
|
min-height: 480px; |
|
|
|
|
|
resize: vertical; |
|
|
overflow-x: auto; |
|
|
overflow-x: auto; |
|
|
padding: 0.5rem; |
|
|
padding: 0.5rem; |
|
|
background-color: #EDF2F7; |
|
|
background-color: #EDF2F7; |
|
|
@ -9588,6 +9590,13 @@ const SidebarStyle = qe.div` |
|
|
border: 1px solid #cbd5e0; |
|
|
border: 1px solid #cbd5e0; |
|
|
width: 100%; |
|
|
width: 100%; |
|
|
box-sizing: border-box; |
|
|
box-sizing: border-box; |
|
|
|
|
|
margin-bottom: 0.5rem; |
|
|
|
|
|
display: block; |
|
|
|
|
|
white-space: pre; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.alert { |
|
|
|
|
|
color: red; |
|
|
} |
|
|
} |
|
|
`;
|
|
|
`;
|
|
|
const SidebarHeaderStyle = qe.header` |
|
|
const SidebarHeaderStyle = qe.header` |
|
|
@ -9885,8 +9894,10 @@ function DataOptions(props = {}) { |
|
|
const initialState = { |
|
|
const initialState = { |
|
|
dataName: 'default', |
|
|
dataName: 'default', |
|
|
data: {}, |
|
|
data: {}, |
|
|
|
|
|
dataText: '{}', |
|
|
dataOptions: [], |
|
|
dataOptions: [], |
|
|
designPreview: [] |
|
|
designPreview: [], |
|
|
|
|
|
jsonError: false |
|
|
}; |
|
|
}; |
|
|
const [state, setState] = react.exports.useState(initialState); |
|
|
const [state, setState] = react.exports.useState(initialState); |
|
|
const [previewOption, setPreviewOption] = react.exports.useState(getDesignPreviewImage(state.dataName, state.designPreview)); |
|
|
const [previewOption, setPreviewOption] = react.exports.useState(getDesignPreviewImage(state.dataName, state.designPreview)); |
|
|
@ -9948,7 +9959,12 @@ function DataOptions(props = {}) { |
|
|
value: item, |
|
|
value: item, |
|
|
selected: isSelected |
|
|
selected: isSelected |
|
|
}, item); |
|
|
}, item); |
|
|
}))), state.data && /*#__PURE__*/React.createElement("pre", null, JSON.stringify(state.data, null, 2)), /*#__PURE__*/React.createElement("button", { |
|
|
}))), state.data && /*#__PURE__*/React.createElement("textarea", { |
|
|
|
|
|
value: state.dataText, |
|
|
|
|
|
onChange: dataOptionUpdate |
|
|
|
|
|
}), state.jsonError && /*#__PURE__*/React.createElement("p", { |
|
|
|
|
|
className: 'alert' |
|
|
|
|
|
}, "Invalid JSON entered."), /*#__PURE__*/React.createElement("button", { |
|
|
className: "btn btn--secondary", |
|
|
className: "btn btn--secondary", |
|
|
onClick: e => copyToClipboard(e, state.data) |
|
|
onClick: e => copyToClipboard(e, state.data) |
|
|
}, "Copy to Clipboard"))); |
|
|
}, "Copy to Clipboard"))); |
|
|
@ -9957,6 +9973,24 @@ function DataOptions(props = {}) { |
|
|
// Functions
|
|
|
// Functions
|
|
|
//
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
function dataOptionUpdate(e) { |
|
|
|
|
|
let data; |
|
|
|
|
|
try { |
|
|
|
|
|
data = JSON.parse(e.target.value); |
|
|
|
|
|
} catch (err) { |
|
|
|
|
|
updateState({ |
|
|
|
|
|
dataText: e.target.value, |
|
|
|
|
|
jsonError: true |
|
|
|
|
|
}); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
updateState({ |
|
|
|
|
|
dataText: e.target.value, |
|
|
|
|
|
data, |
|
|
|
|
|
jsonError: false |
|
|
|
|
|
}); |
|
|
|
|
|
updateIframe(data); |
|
|
|
|
|
} |
|
|
function openSidebar() { |
|
|
function openSidebar() { |
|
|
setSidebarOpen(true); |
|
|
setSidebarOpen(true); |
|
|
setTimeout(() => document.querySelector('.sidebar-active').focus()); |
|
|
setTimeout(() => document.querySelector('.sidebar-active').focus()); |
|
|
@ -9996,15 +10030,19 @@ function DataOptions(props = {}) { |
|
|
} |
|
|
} |
|
|
async function syncDataOptions(dataName) { |
|
|
async function syncDataOptions(dataName) { |
|
|
const dataOptions = await fetchDataOptions(dataName); |
|
|
const dataOptions = await fetchDataOptions(dataName); |
|
|
updateIframe(dataOptions); |
|
|
updateIframe(dataOptions.data); |
|
|
const newState = Object.assign({}, dataOptions, { |
|
|
const newState = Object.assign({ |
|
|
|
|
|
jsonError: false |
|
|
|
|
|
}, dataOptions, { |
|
|
dataName |
|
|
dataName |
|
|
|
|
|
}, { |
|
|
|
|
|
dataText: JSON.stringify(dataOptions.data, null, 2) |
|
|
}); |
|
|
}); |
|
|
updateState(newState); |
|
|
updateState(newState); |
|
|
} |
|
|
} |
|
|
function updateIframe(dataOptions) { |
|
|
function updateIframe(data) { |
|
|
const previewIframe = props.rootAttributes.previewFrame; |
|
|
const previewIframe = props.rootAttributes.previewFrame; |
|
|
previewIframe.contentWindow.postMessage('dataUpdate:' + JSON.stringify(dataOptions.data || {}), '*'); |
|
|
previewIframe.contentWindow.postMessage('dataUpdate:' + JSON.stringify(data || {}), '*'); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
function copyToClipboard(e, context) { |
|
|
function copyToClipboard(e, context) { |
|
|
|