diff --git a/src/Squidex/wwwroot/scripts/editor-sdk.js b/src/Squidex/wwwroot/scripts/editor-sdk.js new file mode 100644 index 000000000..97c1eb9e4 --- /dev/null +++ b/src/Squidex/wwwroot/scripts/editor-sdk.js @@ -0,0 +1,100 @@ + +function SquidexFormField() { + var disabledHandler; + var disabled; + var valueHandler; + var value; + var timer; + var height = document.body.offsetHeight; + + function eventListener(event) { + if (event.source !== window) { + if (event.data.type === 'disabled') { + disabled = event.data.isDisabled; + + if (disabledHandler) { + disabledHandler(disabled); + } + } else if (event.data.type === 'valueChanged') { + var value = event.data.value; + + if (valueHandler) { + valueHandler(value); + } + } + } + } + + document.body.style.margin = '0'; + document.body.style.padding = '0'; + + window.addEventListener('message', eventListener, false); + + window.parent.postMessage({ type: 'started' }, '*'); + window.parent.postMessage({ type: 'resize', height: height }, '*'); + + timer = setInterval(function () { + var newHeight = document.body.offsetHeight; + + if (height !== newHeight) { + height = newHeight; + + window.parent.postMessage({ type: 'resize', height: height }, '*') + } + }, 500); + + var editor = { + /* + * Notifies the control container that the editor has been touched. + */ + touched: function () { + if (window.parent) { + window.parent.postMessage({ type: 'touched' }, '*'); + } + }, + + /* + * Notifies the control container that the value has been changed. + */ + valueChanged: function (value) { + if (window.parent) { + window.parent.postMessage({ type: 'valueChanged', value: value }, '*'); + } + }, + + /* + * Register the disabled handler. + */ + onDisabled: function (callback) { + disabledHandler = callback; + + if (callback) { + callback(disabled); + } + }, + + /* + * Register the disabled handler. + */ + onValueChanged: function (callback) { + valueHandler = callback; + + if (callback) { + callback(value); + } + }, + + /* + * Clean the editor SDK. + */ + clean: function () { + if (timer) { + window.removeEventListener('message', eventListener); + + timer(); + } + } + }; + + return editor; +}; \ No newline at end of file diff --git a/src/Squidex/wwwroot/scripts/simple-editor.html b/src/Squidex/wwwroot/scripts/simple-editor.html new file mode 100644 index 000000000..c73ada19b --- /dev/null +++ b/src/Squidex/wwwroot/scripts/simple-editor.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file