@helpscout/cyan
Version:
Cypress-like Testing for React + JSDOM
68 lines (61 loc) • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
/* global ace */
var editor = function () {
var done = document.querySelector('#done');
done.addEventListener('click', function () {
window.open('', '_self').close();
});
var iframe = document.querySelector('#iframe');
var head = iframe.contentWindow.document.getElementsByTagName('head')[0];
var body = iframe.contentWindow.document.body;
var renderPreview = function (html) {
body.innerHTML = html;
};
var style = document.createElement('style');
style.innerHTML = window.css;
head.appendChild(style);
renderPreview(window.markup);
var editor = ace.edit('editor', {
mode: 'ace/mode/html',
fontSize: '14px',
selectionStyle: 'text',
theme: 'ace/theme/ayu-mirage'
});
editor.setValue(window.markup, -1);
editor.resize();
editor.getSession().setTabSize(2);
editor.getSession().setUseSoftTabs(true);
editor.getSession().setUseWrapMode(true);
editor.session.on('change', function () {
renderPreview(editor.getValue());
});
var editorNode = document.querySelector('#editor');
var iframeNode = document.querySelector('#iframe');
var dragHandleNode = document.querySelector('#dragHandle');
var isDragging = false;
var handleDragMove = function (event) {
if (!isDragging) return false;
var x = event.x;
var left = x / window.innerWidth * 100;
editorNode.style.width = left + "%";
iframeNode.style.width = 100 - left + "%";
dragHandleNode.style.left = left + "%";
editor.resize();
};
dragHandleNode.addEventListener('mousedown', function handleDragStart() {
isDragging = true;
document.documentElement.classList.add('is-dragging');
});
window.addEventListener('mouseup', function handleDragEng() {
isDragging = false;
document.documentElement.classList.remove('is-dragging');
editor.resize();
});
window.addEventListener('mousemove', handleDragMove);
};
var _default = editor;
exports.default = _default;