UNPKG

@helpscout/cyan

Version:

Cypress-like Testing for React + JSDOM

68 lines (61 loc) 2.05 kB
"use strict"; 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;