diff --git a/src/index.html b/src/index.html
index 650b454..81f7cc3 100644
--- a/src/index.html
+++ b/src/index.html
@@ -104,7 +104,7 @@
diff --git a/src/script.js b/src/script.js
index 63d7cf0..130a25c 100644
--- a/src/script.js
+++ b/src/script.js
@@ -5,7 +5,7 @@ addLibraryModal, addLibraryModal, notificationsBtn, notificationsModal, notifica
notificationsModal, notificationsBtn, codepenBtn, saveHtmlBtn, saveBtn, settingsBtn,
onboardModal, settingsModal, notificationsBtn, onboardShowInTabOptionBtn, editorThemeLinkTag,
onboardDontShowInTabOptionBtn, TextareaAutoComplete, savedItemCountEl, indentationSizeValueEl,
-runBtn, searchInput, consoleEl, consoleLogEl
+runBtn, searchInput, consoleEl, consoleLogEl, logCountEl
*/
/* eslint-disable no-extra-semi */
;(function (alertsService) {
@@ -71,6 +71,7 @@ runBtn, searchInput, consoleEl, consoleLogEl
, codeInPreview = { html: null, css: null, js: null }
, isSavedItemsPaneOpen = false
, editorWithFocus
+ , logCount = 0
// DOM nodes
, frame = $('#demo-frame')
@@ -460,11 +461,12 @@ runBtn, searchInput, consoleEl, consoleLogEl
scope.cm.html.setValue(currentItem.html);
scope.cm.css.setValue(currentItem.css);
scope.cm.js.setValue(currentItem.js);
- scope.consoleCm.setValue('');
scope.cm.html.refresh();
scope.cm.css.refresh();
scope.cm.js.refresh();
+ scope.clearConsole();
+
// To have the library count updated
updateExternalLibUi();
@@ -1318,6 +1320,8 @@ runBtn, searchInput, consoleEl, consoleLogEl
};
scope.clearConsole = function () {
scope.consoleCm.setValue('');
+ logCount = 0;
+ logCountEl.textContent = logCount;
};
scope.evalConsoleExpr = function (e) {
// Clear console on CTRL + L
@@ -1334,9 +1338,11 @@ runBtn, searchInput, consoleEl, consoleLogEl
if (arg && arg.indexOf && arg.indexOf('filesystem:chrome-extension') !== -1) {
arg = arg.replace(/filesystem:chrome-extension.*\.js:(\d+):*(\d*)/g, 'script $1:$2');
}
- scope.consoleCm.replaceRange('\n' + arg + ' ' + ((arg + '').match(/\[object \w+]/) ? JSON.stringify(arg) : ''), { line: Infinity });
+ scope.consoleCm.replaceRange(arg + ' ' + ((arg + '').match(/\[object \w+]/) ? JSON.stringify(arg) : '') + '\n', { line: Infinity });
scope.consoleCm.scrollTo(0, Infinity);
+ logCount++;
});
+ logCountEl.textContent = logCount;
};
function compileNodes() {
@@ -1490,6 +1496,7 @@ runBtn, searchInput, consoleEl, consoleLogEl
});
});
+ // Editor keyboard shortucuts
window.addEventListener('keydown', function (event) {
var selectedItemElement;
// Ctrl/⌘ + S
@@ -1591,6 +1598,25 @@ runBtn, searchInput, consoleEl, consoleLogEl
new TextareaAutoComplete(externalJsTextarea, (obj) => obj.latest.match(/\.js$/));
new TextareaAutoComplete(externalCssTextarea, (obj) => obj.latest.match(/\.css$/));
+ var consoleHeaderDragStartY;
+ var consoleInitialHeight;
+ function onConsoleHeaderDrag(e) {
+ consoleEl.style.height = (consoleInitialHeight + consoleHeaderDragStartY - e.pageY) + 'px';
+ utils.log(e.pageY, consoleHeaderDragStartY)
+ }
+ $('.js-console__header').addEventListener('mousedown', (e) => {
+ consoleHeaderDragStartY = e.pageY;
+ consoleInitialHeight = consoleEl.getBoundingClientRect().height;
+ $('#demo-frame').style.pointerEvents = 'none';
+ window.addEventListener('mousemove', onConsoleHeaderDrag);
+ utils.log('added')
+ });
+ $('.js-console__header').addEventListener('mouseup', () => {
+ window.removeEventListener('mousemove', onConsoleHeaderDrag);
+ $('#demo-frame').style.pointerEvents = 'auto';
+ utils.log('removed')
+ });
+
chrome.storage.local.get({
layoutMode: 1,
code: ''
diff --git a/src/style.css b/src/style.css
index 740df45..961052e 100644
--- a/src/style.css
+++ b/src/style.css
@@ -120,6 +120,7 @@ select, input[type="text"], input[type="number"], textarea {
.demo-side {
flex-basis: inherit;
position: relative;
+ width: 50%;
}
.layout-3 .content-wrap {
flex-direction: row-reverse;
@@ -127,7 +128,6 @@ select, input[type="text"], input[type="number"], textarea {
.code-side {
display: flex;
flex-direction: column;
- width: 50%;
}
.layout-2 .content-wrap {
flex-direction: column;
@@ -136,6 +136,9 @@ select, input[type="text"], input[type="number"], textarea {
flex-direction: row;
width: auto;
}
+.layout-2 .demo-side {
+ width: auto;
+}
.layout-4 .code-side {
display: none;
}
@@ -183,6 +186,7 @@ select, input[type="text"], input[type="number"], textarea {
color: #888;
border-bottom: 1px solid rgba(0,0,0,0.3);
font-weight: bold;
+ user-select: none;
}
.code-wrap__header-label {
/*transform: translate(0px) scale(1.2);*/
@@ -191,7 +195,7 @@ select, input[type="text"], input[type="number"], textarea {
opacity: 0.5;
/*transform-origin: left center;*/
}
-.layout-2 .is-minimized .code-wrap__header {
+.layout-2 .code-side .is-minimized .code-wrap__header {
writing-mode: vertical-lr;
padding: 10px 5px;
}
@@ -835,4 +839,16 @@ li.CodeMirror-hint-active {
}
.console .Codemirror {
height: calc(100% - 55px);
+}
+.console-exec-input {
+ padding: 5px;
+ font-size: 1.3em;
+ flex: 1;
+ background: rgba(0,0,0,0.3);
+ color: white;
+ border: 0;
+ outline: 0;
+}
+.console .code-wrap__header {
+ cursor: ns-resize;
}
\ No newline at end of file