<!DOCTYPE html>
<link rel="import" href="http://kasperpeulen.github.io/PolymerElements/imports.html">
<link rel="import" href="http://kasperpeulen.github.io/PolymerElements/theme/blue-grey.html">
<link rel="import" href="style.html">
<body class="fullbleed vertical layout" unresolved>
<template is="dom-bind">
<iron-pages selected="0" id="pages">
<paper-drawer-panel force-narrow>
<paper-header-panel mode="waterfall" drawer>
<paper-toolbar>
<span id="title">Menu</span>
</paper-toolbar>
</paper-header-panel>
<paper-header-panel main>
<paper-toolbar style="height:100px">
<paper-icon-button on-tap="openDrawer" icon="menu"></paper-icon-button>
<div title>DartPad</div>
<!-- <paper-icon-button icon="more-vert"></paper-icon-button> -->
<paper-tabs class="bottom fit" style="top:inherit;" selected="{{selectedTab}}">
<paper-tab>Dart</paper-tab>
<paper-tab>HTML</paper-tab>
<paper-tab>CSS</paper-tab>
</paper-tabs>
<paper-progress id="run-progress" indeterminate hidden class="bottom fit"></paper-progress>
</paper-toolbar>
<paper-fab id="run-button" on-tap="openResult" icon="av:play-arrow"
style="position: absolute; bottom: 16px; right: 16px;"></paper-fab>
<iron-pages id="editpanel" selected="{{selectedTab}}">
<marked-element>
<script type="text/markdown">
```
import 'dart:html';
void main() {
var count = querySelector('#count');
for (int i = 0; i < 4; i++) {
count.text = '${i}';
print('hello ${i}');
}
}
```
</script>
</marked-element>
<marked-element>
<script type="text/markdown">
```
<h2>Hello world</h2>
<p>Hello world <span id="count"></span>!</p>
```
</script>
</marked-element>
<marked-element>
<script type="text/markdown">
```
p {
color: #888;
}
```
</script>
</marked-element>
</iron-pages>
</paper-header-panel>
</paper-drawer-panel>
<paper-header-panel class="fit">
<paper-toolbar>
<paper-fab icon="arrow-back" on-tap="openEditor" class="back-button" mini></paper-fab>
<span title>DartPad</span>
<paper-toggle-button on-change="toggleConsole" checked></paper-toggle-button>
<paper-icon-button on-tap="refresh" icon="refresh"></paper-icon-button>
<paper-progress id="refresh-progress" indeterminate hidden class="bottom fit"></paper-progress>
</paper-toolbar>
<div class="layout vertical fit">
<div id="frame-container" class="flex-2">
<h2>Hello world</h2>
<p>Hello world <span id="count">3</span>!</p>
</div>
<div id="console" class="flex-1">
<div class="title">Console output</div>
<span class="normal">hello 0</span><br>
<span class="normal">hello 1</span><br>
<span class="normal">hello 2</span><br>
<span class="normal">hello 3</span><br>
</div>
</div>
</paper-header-panel>
</iron-pages>
</template>
<script>
function $(selector) {
return document.querySelector(selector);
}
var scope = $('template[is=dom-bind]');
scope.selectedTab = "0";
scope.openDrawer = function(e) {
$("paper-drawer-panel").openDrawer();
};
scope.openResult = function(e) {
$('#run-progress').toggleAttribute('hidden');
setTimeout(function(){ $("#pages").selectNext(); }, 1000);
};
scope.openEditor = function(e) {
$('#run-progress').toggleAttribute('hidden');
$("#pages").selectNext();
e.stopPropagation();
};
scope.toggleConsole = function(e) {
$("#console").hidden = !$("#console").hidden;
}
scope.refresh = function(e) {
$('#refresh-progress').toggleAttribute('hidden');
setTimeout(function(){ $('#refresh-progress').toggleAttribute('hidden'); }, 1000);
}
</script>
</body>
<style is="custom-style">
:root {
--primary-background-color: #333;
--accent-color: var(--red-accent-color);
--paper-fab-background: var(--red-accent-color);
--paper-tabs-selection-bar-color: var(--light-primary-color);
--paper-tab-ink: var(--light-primary-color);
}
body,
paper-header-panel {
background: var(--primary-background-color);
}
code {
font-family: 'Inconsolata', monospace;
color: #ddd;
font-size: 12pt;
}
#editpanel {
margin: 0 15px;
}
paper-tabs {
height: 32px;
}
paper-tab {
font-weight: 400;
max-width: 220px;
}
paper-progress {
top: inherit;
width: inherit;
}
paper-menu {
--paper-menu-color: #c6c6c6;
}
paper-fab {
z-index: 100;
}
#console {
font-family: 'Inconsolata', monospace;
font-size: 12pt;
line-height: 20px;
min-height: 50px;
overflow-y: auto;
margin: 8px;
padding: 8px;
background-color: var(--secondary-text-color);
}
#console .normal {
color: #fff;
}
#console .title {
opacity: 0.75;
}
#frame-container {
margin: 16px;
color: #ddd;
font-family: 'Roboto', sans-serif;
font-size: 12pt;
}
#frame-container p {
color: #888;
}
</style>