1 | // koffee 1.14.0
|
2 |
|
3 | /*
|
4 | 000 000 000 000 000 0000000 0000000 000 000
|
5 | 000 0 000 000 0000 000 000 000 000 000 000 0 000
|
6 | 000000000 000 000 0 000 000 000 000 000 000000000
|
7 | 000 000 000 000 0000 000 000 000 000 000 000
|
8 | 00 00 000 000 000 0000000 0000000 00 00
|
9 | */
|
10 | var $, _, elem, fadeOverlay, koSend, onError, onFile, onMessage, onTask, openFile, post, ref, showOverlay, slash, taskDiv, tasks, title, udp, w, win;
|
11 |
|
12 | ref = require('kxk'), $ = ref.$, _ = ref._, elem = ref.elem, post = ref.post, slash = ref.slash, title = ref.title, udp = ref.udp, win = ref.win;
|
13 |
|
14 | w = new win({
|
15 | dir: __dirname,
|
16 | pkg: require('../package.json'),
|
17 | menu: '../coffee/menu.noon',
|
18 | icon: '../img/menu@2x.png'
|
19 | });
|
20 |
|
21 | koSend = null;
|
22 |
|
23 | openFile = function(f) {
|
24 | if (!koSend) {
|
25 | koSend = new udp({
|
26 | port: 9779
|
27 | });
|
28 | }
|
29 | return koSend.send(slash.resolve(f));
|
30 | };
|
31 |
|
32 | tasks = {};
|
33 |
|
34 | showOverlay = function() {
|
35 | var img, overlay, ref1;
|
36 | img = slash.fileUrl(slash.join(__dirname, '..', 'img', 'about.png'));
|
37 | if ((ref1 = $('#overlay')) != null) {
|
38 | ref1.remove();
|
39 | }
|
40 | overlay = elem({
|
41 | id: 'overlay'
|
42 | });
|
43 | overlay.appendChild(elem('img', {
|
44 | "class": 'info',
|
45 | src: img
|
46 | }));
|
47 | overlay.addEventListener('click', function(event) {
|
48 | return event.target.remove();
|
49 | });
|
50 | return $('main').appendChild(overlay);
|
51 | };
|
52 |
|
53 | fadeOverlay = function() {
|
54 | showOverlay();
|
55 | return $('#overlay').classList.add('fade-in');
|
56 | };
|
57 |
|
58 | post.on('konradExit', function(s) {});
|
59 |
|
60 | post.on('konradError', function(s, html) {
|
61 | return onError(s, html);
|
62 | });
|
63 |
|
64 | post.on('konradOutput', function(s, html) {
|
65 | if (/ 😡 /.test(s)) {
|
66 | onError(s, html);
|
67 | }
|
68 | if (/ 🔺 /.test(s)) {
|
69 | return onFile(s, html);
|
70 | } else if (/ 👍 /.test(s)) {
|
71 | return onTask(s, html);
|
72 | } else if (/ 🔧 /.test(s)) {
|
73 | return onMessage(s, html);
|
74 | }
|
75 | });
|
76 |
|
77 | post.on('konradVersion', function(s) {
|
78 | var split;
|
79 | split = s.trim().split(/\s+/);
|
80 | title = ['path'];
|
81 | if (process.argv[0].endsWith('Electron Helper') || process.argv[0].endsWith('electron.exe')) {
|
82 | title = ['version', 'path'];
|
83 | }
|
84 | return window.titlebar.setTitle({
|
85 | title: title,
|
86 | pkg: {
|
87 | version: split[0],
|
88 | path: slash.tilde(split[2])
|
89 | }
|
90 | });
|
91 | });
|
92 |
|
93 | post.on('clearLog', function() {
|
94 | $('main').innerHTML = '';
|
95 | tasks = {};
|
96 | return showOverlay();
|
97 | });
|
98 |
|
99 | taskDiv = function(opt) {
|
100 | var div, fil, main, ref1, ref2, ref3, tim;
|
101 | main = $('main');
|
102 | if (_.isEmpty(tasks)) {
|
103 | main.innerHTML = '';
|
104 | }
|
105 | if ((ref1 = tasks[opt.key]) != null) {
|
106 | ref1.remove();
|
107 | }
|
108 | div = document.createElement('div');
|
109 | tim = document.createElement('span');
|
110 | fil = document.createElement('span');
|
111 | div.classList.add('task');
|
112 | tim.classList.add('time');
|
113 | tim.innerHTML = opt.time;
|
114 | fil.classList.add((opt.file != null) && 'file' || 'message');
|
115 | fil.innerHTML = (ref2 = opt.fileHtml) != null ? ref2 : " " + opt.icon + " " + ((ref3 = opt.file) != null ? ref3 : opt.message);
|
116 | fil.onclick = function() {
|
117 | if (opt.file != null) {
|
118 | return openFile(opt.file);
|
119 | }
|
120 | };
|
121 | div.appendChild(tim);
|
122 | div.appendChild(fil);
|
123 | tasks[opt.key] = div;
|
124 | main.appendChild(div);
|
125 | return div;
|
126 | };
|
127 |
|
128 | onTask = function(s) {
|
129 | var div, ref1, ref2, ref3, source, sourceTarget, target, time;
|
130 | post.toMain('highlight');
|
131 | ref1 = s.split(' 👍 '), time = ref1[0], sourceTarget = ref1[1];
|
132 | ref2 = sourceTarget.split(' ► '), source = ref2[0], target = ref2[1];
|
133 | source = slash.tilde(source.trim());
|
134 | target = slash.tilde(target.trim());
|
135 | div = taskDiv({
|
136 | time: time,
|
137 | file: source,
|
138 | key: source,
|
139 | icon: '👍'
|
140 | });
|
141 | div.scrollIntoViewIfNeeded();
|
142 | if (slash.dir(target).startsWith(slash.tilde(slash.dir(__filename)))) {
|
143 | if (slash.file(target) === 'window.js' || ((ref3 = slash.ext(target)) === 'css' || ref3 === 'html')) {
|
144 | post.emit('menuAction', 'Reload');
|
145 | } else if (slash.file(target) === 'main.js') {
|
146 | post.toMain('Restart');
|
147 | } else {
|
148 | post.toMain('Restart konrad');
|
149 | }
|
150 | }
|
151 | return fadeOverlay();
|
152 | };
|
153 |
|
154 | onMessage = function(s) {
|
155 | var div, msg, ref1, time;
|
156 | ref1 = s.split(' 🔧 '), time = ref1[0], msg = ref1[1];
|
157 | return div = taskDiv({
|
158 | time: time,
|
159 | message: msg,
|
160 | key: 'msg',
|
161 | icon: '🔧'
|
162 | });
|
163 | };
|
164 |
|
165 | onError = function(s, html) {
|
166 | var div, fileHtml, htmls, i, j, key, lines, msg, pre, ref1, ref2, task, time;
|
167 | post.toMain('showWindow');
|
168 | post.toMain('highlight');
|
169 | for (key in tasks) {
|
170 | task = tasks[key];
|
171 | if (task.icon === '😡') {
|
172 | task.div.remove();
|
173 | delete tasks[key];
|
174 | }
|
175 | }
|
176 | lines = s.split('\n');
|
177 | if (html) {
|
178 | htmls = html.split('\n');
|
179 | fileHtml = htmls.shift().split('</span>').slice(5).join('</span>');
|
180 | }
|
181 | ref1 = lines.shift().split(' 😡 '), time = ref1[0], msg = ref1[1];
|
182 | if ((msg != null ? msg.trim : void 0) != null) {
|
183 | msg = msg.trim();
|
184 | if (msg.split(':').length >= 3) {
|
185 | msg = '';
|
186 | }
|
187 | }
|
188 | div = taskDiv({
|
189 | time: time,
|
190 | icon: '😡',
|
191 | message: msg
|
192 | });
|
193 | for (i = j = 0, ref2 = lines.length; 0 <= ref2 ? j < ref2 : j > ref2; i = 0 <= ref2 ? ++j : --j) {
|
194 | pre = document.createElement('pre');
|
195 | pre.classList.add('error');
|
196 | if (htmls[i]) {
|
197 | pre.innerHTML = htmls[i];
|
198 | } else {
|
199 | pre.textContent = lines[i];
|
200 | }
|
201 | div.appendChild(pre);
|
202 | }
|
203 | return div.scrollIntoViewIfNeeded();
|
204 | };
|
205 |
|
206 | onFile = function(s, html) {
|
207 | var div, file, fileHtml, htmls, ref1, time;
|
208 | post.toMain('showWindow');
|
209 | post.toMain('highlight');
|
210 | if (html) {
|
211 | htmls = html.split('\n');
|
212 | fileHtml = htmls.shift().split('</span>').slice(5).join('</span>');
|
213 | }
|
214 | ref1 = s.split(' 🔺 '), time = ref1[0], file = ref1[1];
|
215 | file = file.trim();
|
216 | div = taskDiv({
|
217 | time: time,
|
218 | file: file,
|
219 | key: file.split(':')[0],
|
220 | icon: '🔺',
|
221 | fileHtml: fileHtml
|
222 | });
|
223 | return div.scrollIntoViewIfNeeded();
|
224 | };
|
225 |
|
226 | post.on('menuAction', function(action) {
|
227 | switch (action) {
|
228 | case 'Clear':
|
229 | return post.emit('clearLog');
|
230 | case 'Set Dir...':
|
231 | return post.toMain('setRootDir');
|
232 | }
|
233 | });
|
234 |
|
235 | showOverlay();
|
236 |
|
237 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LmpzIiwic291cmNlUm9vdCI6Ii4uL2NvZmZlZSIsInNvdXJjZXMiOlsid2luZG93LmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7O0FBQUEsSUFBQTs7QUFRQSxNQUErQyxPQUFBLENBQVEsS0FBUixDQUEvQyxFQUFFLFNBQUYsRUFBSyxTQUFMLEVBQVEsZUFBUixFQUFjLGVBQWQsRUFBb0IsaUJBQXBCLEVBQTJCLGlCQUEzQixFQUFrQyxhQUFsQyxFQUF1Qzs7QUFFdkMsQ0FBQSxHQUFJLElBQUksR0FBSixDQUNBO0lBQUEsR0FBQSxFQUFRLFNBQVI7SUFDQSxHQUFBLEVBQVEsT0FBQSxDQUFRLGlCQUFSLENBRFI7SUFFQSxJQUFBLEVBQVEscUJBRlI7SUFHQSxJQUFBLEVBQVEsb0JBSFI7Q0FEQTs7QUFZSixNQUFBLEdBQVM7O0FBQ1QsUUFBQSxHQUFXLFNBQUMsQ0FBRDtJQUNQLElBQUcsQ0FBSSxNQUFQO1FBQW1CLE1BQUEsR0FBUyxJQUFJLEdBQUosQ0FBUTtZQUFBLElBQUEsRUFBSyxJQUFMO1NBQVIsRUFBNUI7O1dBQ0EsTUFBTSxDQUFDLElBQVAsQ0FBWSxLQUFLLENBQUMsT0FBTixDQUFjLENBQWQsQ0FBWjtBQUZPOztBQUlYLEtBQUEsR0FBUTs7QUFRUixXQUFBLEdBQWMsU0FBQTtBQUVWLFFBQUE7SUFBQSxHQUFBLEdBQU0sS0FBSyxDQUFDLE9BQU4sQ0FBYyxLQUFLLENBQUMsSUFBTixDQUFXLFNBQVgsRUFBc0IsSUFBdEIsRUFBMkIsS0FBM0IsRUFBaUMsV0FBakMsQ0FBZDs7WUFDTyxDQUFFLE1BQWYsQ0FBQTs7SUFDQSxPQUFBLEdBQVUsSUFBQSxDQUFLO1FBQUEsRUFBQSxFQUFHLFNBQUg7S0FBTDtJQUNWLE9BQU8sQ0FBQyxXQUFSLENBQW9CLElBQUEsQ0FBSyxLQUFMLEVBQVc7UUFBQSxDQUFBLEtBQUEsQ0FBQSxFQUFNLE1BQU47UUFBYSxHQUFBLEVBQUksR0FBakI7S0FBWCxDQUFwQjtJQUNB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LElBQUg7UUFDSSxLQUFBLEdBQVEsSUFBSSxDQUFDLEtBQUwsQ0FBVyxJQUFYO1FBQ1IsUUFBQSxHQUFXLEtBQUssQ0FBQyxLQUFOLENBQUEsQ0FBYSxDQUFDLEtBQWQsQ0FBb0IsU0FBcEIsQ0FBK0IsU0FBSSxDQUFDLElBQXBDLENBQXlDLFNBQXpDLEVBRmY7O0lBSUEsT0FBZSxDQUFDLENBQUMsS0FBRixDQUFRLE1BQVIsQ0FBZixFQUFDLGNBQUQsRUFBTztJQUNQLElBQUEsR0FBTyxJQUFJLENBQUMsSUFBTCxDQUFBO0lBRVAsR0FBQSxHQUFNLE9BQUEsQ0FBUTtRQUFBLElBQUEsRUFBSyxJQUFMO1FBQVcsSUFBQSxFQUFLLElBQWhCO1FBQXNCLEdBQUEsRUFBSSxJQUFJLENBQUMsS0FBTCxDQUFXLEdBQVgsQ0FBZ0IsQ0FBQSxDQUFBLENBQTFDO1FBQThDLElBQUEsRUFBSyxJQUFuRDtRQUF3RCxRQUFBLEVBQVMsUUFBakU7S0FBUjtXQUVOLEdBQUcsQ0FBQyxzQkFBSixDQUFBO0FBZEs7O0FBc0JULElBQUksQ0FBQyxFQUFMLENBQVEsWUFBUixFQUFxQixTQUFDLE1BQUQ7QUFFakIsWUFBTyxNQUFQO0FBQUEsYUFDUyxPQURUO21CQUMyQixJQUFJLENBQUMsSUFBTCxDQUFVLFVBQVY7QUFEM0IsYUFFUyxZQUZUO21CQUUyQixJQUFJLENBQUMsTUFBTCxDQUFZLFlBQVo7QUFGM0I7QUFGaUIsQ0FBckI7O0FBTUEsV0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiIyMjXG4wMDAgICAwMDAgIDAwMCAgMDAwICAgMDAwICAwMDAwMDAwICAgICAwMDAwMDAwICAgMDAwICAgMDAwICBcbjAwMCAwIDAwMCAgMDAwICAwMDAwICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgMCAwMDAgIFxuMDAwMDAwMDAwICAwMDAgIDAwMCAwIDAwMCAgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMDAwMDAwMCAgXG4wMDAgICAwMDAgIDAwMCAgMDAwICAwMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICBcbjAwICAgICAwMCAgMDAwICAwMDAgICAwMDAgIDAwMDAwMDAgICAgIDAwMDAwMDAgICAwMCAgICAgMDAgIFxuIyMjXG5cbnsgJCwgXywgZWxlbSwgcG9zdCwgc2xhc2gsIHRpdGxlLCB1ZHAsIHdpbiB9ID0gcmVxdWlyZSAna3hrJ1xuXG53ID0gbmV3IHdpblxuICAgIGRpcjogICAgX19kaXJuYW1lXG4gICAgcGtnOiAgICByZXF1aXJlICcuLi9wYWNrYWdlLmpzb24nXG4gICAgbWVudTogICAnLi4vY29mZmVlL21lbnUubm9vbidcbiAgICBpY29uOiAgICcuLi9pbWcvbWVudUAyeC5wbmcnXG4gICAgXG4jICAwMDAwMDAwICAgMDAwMDAwMDAgICAwMDAwMDAwMCAgMDAwICAgMDAwICBcbiMgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgICAgICAwMDAwICAwMDAgIFxuIyAwMDAgICAwMDAgIDAwMDAwMDAwICAgMDAwMDAwMCAgIDAwMCAwIDAwMCAgXG4jIDAwMCAgIDAwMCAgMDAwICAgICAgICAwMDAgICAgICAgMDAwICAwMDAwICBcbiMgIDAwMDAwMDAgICAwMDAgICAgICAgIDAwMDAwMDAwICAwMDAgICAwMDAgIFxuXG5rb1NlbmQgPSBudWxsXG5vcGVuRmlsZSA9IChmKSAtPlxuICAgIGlmIG5vdCBrb1NlbmQgdGhlbiBrb1NlbmQgPSBuZXcgdWRwIHBvcnQ6OTc3OVxuICAgIGtvU2VuZC5zZW5kIHNsYXNoLnJlc29sdmUgZlxuXG50YXNrcyA9IHt9XG5cbiMgIDAwMDAwMDAgICAwMDAgICAwMDAgIDAwMDAwMDAwICAwMDAwMDAwMCAgIDAwMCAgICAgICAwMDAwMDAwICAgMDAwICAgMDAwICBcbiMgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAgICAgIDAwMCAgIDAwMCAgIDAwMCAwMDAgICBcbiMgMDAwICAgMDAwICAgMDAwIDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMCAgICAgIDAwMDAwMDAwMCAgICAwMDAwMCAgICBcbiMgMDAwICAgMDAwICAgICAwMDAgICAgIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAgICAgIDAwMCAgIDAwMCAgICAgMDAwICAgICBcbiMgIDAwMDAwMDAgICAgICAgMCAgICAgIDAwMDAwMDAwICAwMDAgICAwMDAgIDAwMDAwMDAgIDAwMCAgIDAwMCAgICAgMDAwICAgICBcblxuc2hvd092ZXJsYXkgPSAtPlxuXG4gICAgaW1nID0gc2xhc2guZmlsZVVybCBzbGFzaC5qb2luIF9fZGlybmFtZSwgJy4uJyAnaW1nJyAnYWJvdXQucG5nJ1xuICAgICQoJyNvdmVybGF5Jyk/LnJlbW92ZSgpIFxuICAgIG92ZXJsYXkgPSBlbGVtIGlkOidvdmVybGF5J1xuICAgIG92ZXJsYXkuYXBwZW5kQ2hpbGQgZWxlbSAnaW1nJyBjbGFzczonaW5mbycgc3JjOmltZ1xuICAgIG92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lciAnY2xpY2snIChldmVudCkgLT4gZXZlbnQudGFyZ2V0LnJlbW92ZSgpXG4gICAgJCgnbWFpbicpLmFwcGVuZENoaWxkIG92ZXJsYXlcblxuZmFkZU92ZXJsYXkgPSAtPlxuICAgIFxuICAgIHNob3dPdmVybGF5KClcbiAgICAkKCcjb3ZlcmxheScpLmNsYXNzTGlzdC5hZGQgJ2ZhZGUtaW4nXG4gICAgXG4jIDAwMDAwMDAwICAgIDAwMDAwMDAgICAgMDAwMDAwMCAgMDAwMDAwMDAwICBcbiMgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgICAgICAgICAwMDAgICAgIFxuIyAwMDAwMDAwMCAgIDAwMCAgIDAwMCAgMDAwMDAwMCAgICAgIDAwMCAgICAgXG4jIDAwMCAgICAgICAgMDAwICAgMDAwICAgICAgIDAwMCAgICAgMDAwICAgICBcbiMgMDAwICAgICAgICAgMDAwMDAwMCAgIDAwMDAwMDAgICAgICAwMDAgICAgIFxuXG5wb3N0Lm9uICdrb25yYWRFeGl0JyAocykgLT5cbnBvc3Qub24gJ2tvbnJhZEVycm9yJyAocywgaHRtbCkgLT4gb25FcnJvciBzLCBodG1sXG5wb3N0Lm9uICdrb25yYWRPdXRwdXQnIChzLCBodG1sKSAtPlxuICAgIFxuICAgIGlmICAgICAgLyDwn5ihIC8udGVzdCBzIHRoZW4gb25FcnJvciAgIHMsIGh0bWxcbiAgICBpZiAgICAgIC8g8J+UuiAvLnRlc3QgcyB0aGVuIG9uRmlsZSAgICBzLCBodG1sXG4gICAgZWxzZSBpZiAvIPCfkY0gLy50ZXN0IHMgdGhlbiBvblRhc2sgICAgcywgaHRtbFxuICAgIGVsc2UgaWYgLyDwn5SnIC8udGVzdCBzIHRoZW4gb25NZXNzYWdlIHMsIGh0bWxcbiAgICAjIGVsc2UgbG9nICdrb25yYWQnIHNcblxucG9zdC5vbiAna29ucmFkVmVyc2lvbicgKHMpIC0+XG5cbiAgICAjIGtsb2cgcHJvY2Vzcy5hcmd2WzBdXG4gICAgc3BsaXQgPSBzLnRyaW0oKS5zcGxpdCAvXFxzKy9cbiAgICB0aXRsZSA9IFsncGF0aCddXG4gICAgaWYgcHJvY2Vzcy5hcmd2WzBdLmVuZHNXaXRoKCdFbGVjdHJvbiBIZWxwZXInKSBvciBwcm9jZXNzLmFyZ3ZbMF0uZW5kc1dpdGgoJ2VsZWN0cm9uLmV4ZScpXG4gICAgICAgIHRpdGxlID0gWyd2ZXJzaW9uJyAncGF0aCddXG4gICAgd2luZG93LnRpdGxlYmFyLnNldFRpdGxlICBcbiAgICAgICAgdGl0bGU6dGl0bGVcbiAgICAgICAgcGtnOlxuICAgICAgICAgICAgdmVyc2lvbjogc3BsaXRbMF1cbiAgICAgICAgICAgIHBhdGg6IHNsYXNoLnRpbGRlIHNwbGl0WzJdXG4gICAgXG5wb3N0Lm9uICdjbGVhckxvZycgLT4gXG4gICAgXG4gICAgJCgnbWFpbicpLmlubmVySFRNTCA9ICcnIFxuICAgIHRhc2tzID0ge30gXG4gICAgc2hvd092ZXJsYXkoKVxuICAgIFxuIyAwMDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMDAwMDAgIDAwMCAgIDAwMCAgMDAwMDAwMCAgICAwMDAgIDAwMCAgIDAwMCAgXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAwMDAgICAgICAgMDAwICAwMDAgICAwMDAgICAwMDAgIDAwMCAgMDAwICAgMDAwICBcbiMgICAgMDAwICAgICAwMDAwMDAwMDAgIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMCAgIDAwMCAgMDAwICAgMDAwIDAwMCAgIFxuIyAgICAwMDAgICAgIDAwMCAgIDAwMCAgICAgICAwMDAgIDAwMCAgMDAwICAgMDAwICAgMDAwICAwMDAgICAgIDAwMCAgICAgXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAwMDAwMDAwICAgMDAwICAgMDAwICAwMDAwMDAwICAgIDAwMCAgICAgIDAgICAgICBcblxudGFza0RpdiA9IChvcHQpIC0+XG5cbiAgICBtYWluID0kICdtYWluJ1xuICAgIGlmIF8uaXNFbXB0eSB0YXNrc1xuICAgICAgICBtYWluLmlubmVySFRNTCA9ICcnXG5cbiAgICB0YXNrc1tvcHQua2V5XT8ucmVtb3ZlKClcblxuICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgJ2RpdidcbiAgICB0aW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50ICdzcGFuJ1xuICAgIGZpbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgJ3NwYW4nXG5cbiAgICBkaXYuY2xhc3NMaXN0LmFkZCAndGFzaydcblxuICAgIHRpbS5jbGFzc0xpc3QuYWRkICd0aW1lJ1xuICAgIHRpbS5pbm5lckhUTUwgPSBvcHQudGltZVxuXG4gICAgZmlsLmNsYXNzTGlzdC5hZGQgb3B0LmZpbGU/IGFuZCAnZmlsZScgb3IgJ21lc3NhZ2UnXG4gICAgZmlsLmlubmVySFRNTCA9IG9wdC5maWxlSHRtbCA/IFwiICN7b3B0Lmljb259ICN7b3B0LmZpbGUgPyBvcHQubWVzc2FnZX1cIlxuICAgIGZpbC5vbmNsaWNrID0gLT4gb3BlbkZpbGUgb3B0LmZpbGUgaWYgb3B0LmZpbGU/XG5cbiAgICBkaXYuYXBwZW5kQ2hpbGQgdGltXG4gICAgZGl2LmFwcGVuZENoaWxkIGZpbFxuXG4gICAgdGFza3Nbb3B0LmtleV0gPSBkaXZcbiAgICBtYWluLmFwcGVuZENoaWxkIGRpdlxuXG4gICAgZGl2XG4gICAgXG4jIDAwMDAwMDAwMCAgIDAwMDAwMDAgICAgMDAwMDAwMCAgMDAwICAgMDAwXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAwMDAgICAgICAgMDAwICAwMDBcbiMgICAgMDAwICAgICAwMDAwMDAwMDAgIDAwMDAwMDAgICAwMDAwMDAwXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAgICAgIDAwMCAgMDAwICAwMDBcbiMgICAgMDAwICAgICAwMDAgICAwMDAgIDAwMDAwMDAgICAwMDAgICAwMDBcblxub25UYXNrID0gKHMpIC0+XG4gICAgXG4gICAgcG9zdC50b01haW4gJ2hpZ2hsaWdodCdcblxuICAgIFt0aW1lLCBzb3VyY2VUYXJnZXRdID0gcy5zcGxpdCAnIPCfkY0gJ1xuICAgIFtzb3VyY2UsIHRhcmdldF0gPSBzb3VyY2VUYXJnZXQuc3BsaXQgJyDilrogJ1xuICAgIFxuICAgIHNvdXJjZSA9IHNsYXNoLnRpbGRlIHNvdXJjZS50cmltKClcbiAgICB0YXJnZXQgPSBzbGFzaC50aWxkZSB0YXJnZXQudHJpbSgpXG4gICAgZGl2ID0gdGFza0RpdiB0aW1lOiB0aW1lLCBmaWxlOiBzb3VyY2UsIGtleTogc291cmNlLCBpY29uOiAn8J+RjSdcbiAgICBkaXYuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpXG4gICAgXG4gICAgaWYgc2xhc2guZGlyKHRhcmdldCkuc3RhcnRzV2l0aCBzbGFzaC50aWxkZSBzbGFzaC5kaXIgX19maWxlbmFtZVxuICAgICAgICBpZiBzbGFzaC5maWxlKHRhcmdldCkgPT0gJ3dpbmRvdy5qcycgb3Igc2xhc2guZXh0KHRhcmdldCkgaW4gWydjc3MnLCAnaHRtbCddXG4gICAgICAgICAgICBwb3N0LmVtaXQgJ21lbnVBY3Rpb24nICdSZWxvYWQnXG4gICAgICAgIGVsc2UgaWYgc2xhc2guZmlsZSh0YXJnZXQpID09ICdtYWluLmpzJ1xuICAgICAgICAgICAgcG9zdC50b01haW4gJ1Jlc3RhcnQnXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgICMga2xvZyBcInNob3VsZCByZXN0YXJ0IGtvbnJhZCAnI3tzbGFzaC5maWxlKHRhcmdldCl9J1wiLCB0YXJnZXQsIHNsYXNoLnBhdGggX19maWxlbmFtZVxuICAgICAgICAgICAgcG9zdC50b01haW4gJ1Jlc3RhcnQga29ucmFkJ1xuICAgIFxuICAgIGZhZGVPdmVybGF5KClcblxuIyAwMCAgICAgMDAgIDAwMDAwMDAwICAgMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMDAwMDAgICAwMDAwMDAwMFxuIyAwMDAgICAwMDAgIDAwMCAgICAgICAwMDAgICAgICAgMDAwICAgICAgIDAwMCAgIDAwMCAgMDAwICAgICAgICAwMDBcbiMgMDAwMDAwMDAwICAwMDAwMDAwICAgMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwMDAgIDAwMCAgMDAwMCAgMDAwMDAwMFxuIyAwMDAgMCAwMDAgIDAwMCAgICAgICAgICAgIDAwMCAgICAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDBcbiMgMDAwICAgMDAwICAwMDAwMDAwMCAgMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDAgICAwMDAwMDAwICAgMDAwMDAwMDBcblxub25NZXNzYWdlID0gKHMpIC0+XG5cbiAgICBbdGltZSwgbXNnXSA9IHMuc3BsaXQgJyDwn5SnICdcblxuICAgIGRpdiA9IHRhc2tEaXYgdGltZTp0aW1lLCBtZXNzYWdlOm1zZywga2V5Oidtc2cnIGljb246J/CflKcnXG4gICAgXG4jIDAwMDAwMDAwICAwMDAwMDAwMCAgIDAwMDAwMDAwICAgIDAwMDAwMDAgICAwMDAwMDAwMFxuIyAwMDAgICAgICAgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwXG4jIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMDAwMDAgICAgMDAwICAgMDAwICAwMDAwMDAwXG4jIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAwMDBcbiMgMDAwMDAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMFxuXG5vbkVycm9yID0gKHMsIGh0bWwpIC0+XG5cbiAgICBwb3N0LnRvTWFpbiAnc2hvd1dpbmRvdydcbiAgICBwb3N0LnRvTWFpbiAnaGlnaGxpZ2h0J1xuICAgIFxuICAgIGZvciBrZXksdGFzayBvZiB0YXNrc1xuICAgICAgICBpZiB0YXNrLmljb24gPT0gJ/CfmKEnIFxuICAgICAgICAgICAgdGFzay5kaXYucmVtb3ZlKClcbiAgICAgICAgICAgIGRlbGV0ZSB0YXNrc1trZXldXG5cbiAgICBsaW5lcyA9IHMuc3BsaXQgJ1xcbidcbiAgICBpZiBodG1sXG4gICAgICAgIGh0bWxzID0gaHRtbC5zcGxpdCAnXFxuJ1xuICAgICAgICBmaWxlSHRtbCA9IGh0bWxzLnNoaWZ0KCkuc3BsaXQoJzwvc3Bhbj4nKVs1Li5dLmpvaW4gJzwvc3Bhbj4nXG4gICAgXG4gICAgW3RpbWUsIG1zZ10gPSBsaW5lcy5zaGlmdCgpLnNwbGl0ICcg8J+YoSAnXG4gICAgaWYgbXNnPy50cmltP1xuICAgICAgICBtc2cgPSBtc2cudHJpbSgpXG4gICAgICAgIGlmIG1zZy5zcGxpdCgnOicpLmxlbmd0aCA+PSAzIHRoZW4gbXNnID0gJydcblxuICAgIGRpdiA9IHRhc2tEaXYgdGltZTp0aW1lLCBpY29uOifwn5ihJyBtZXNzYWdlOm1zZ1xuXG4gICAgZm9yIGkgaW4gWzAuLi5saW5lcy5sZW5ndGhdXG4gICAgICAgIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgJ3ByZSdcbiAgICAgICAgcHJlLmNsYXNzTGlzdC5hZGQgJ2Vycm9yJ1xuICAgICAgICBpZiBodG1sc1tpXVxuICAgICAgICAgICAgcHJlLmlubmVySFRNTCA9IGh0bWxzW2ldXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHByZS50ZXh0Q29udGVudCA9IGxpbmVzW2ldXG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZCBwcmVcblxuICAgIGRpdi5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKClcblxuIyAwMDAwMDAwMCAgMDAwICAwMDAgICAgICAwMDAwMDAwMCAgXG4jIDAwMCAgICAgICAwMDAgIDAwMCAgICAgIDAwMCAgICAgICBcbiMgMDAwMDAwICAgIDAwMCAgMDAwICAgICAgMDAwMDAwMCAgIFxuIyAwMDAgICAgICAgMDAwICAwMDAgICAgICAwMDAgICAgICAgXG4jIDAwMCAgICAgICAwMDAgIDAwMDAwMDAgIDAwMDAwMDAwICBcblxub25GaWxlID0gKHMsIGh0bWwpIC0+XG5cbiAgICBwb3N0LnRvTWFpbiAnc2hvd1dpbmRvdydcbiAgICBwb3N0LnRvTWFpbiAnaGlnaGxpZ2h0J1xuICAgIFxuICAgIGlmIGh0bWxcbiAgICAgICAgaHRtbHMgPSBodG1sLnNwbGl0ICdcXG4nXG4gICAgICAgIGZpbGVIdG1sID0gaHRtbHMuc2hpZnQoKS5zcGxpdCgnPC9zcGFuPicpWzUuLl0uam9pbiAnPC9zcGFuPidcbiAgICBcbiAgICBbdGltZSwgZmlsZV0gPSBzLnNwbGl0ICcg8J+UuiAnXG4gICAgZmlsZSA9IGZpbGUudHJpbSgpXG5cbiAgICBkaXYgPSB0YXNrRGl2IHRpbWU6dGltZSwgZmlsZTpmaWxlLCBrZXk6ZmlsZS5zcGxpdCgnOicpWzBdLCBpY29uOifwn5S6JyBmaWxlSHRtbDpmaWxlSHRtbFxuXG4gICAgZGl2LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKVxuICAgIFxuIyAwMCAgICAgMDAgIDAwMDAwMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgIDAwMDAwMDAgICAgMDAwMDAwMCAgMDAwMDAwMDAwICAwMDAgICAwMDAwMDAwICAgMDAwICAgMDAwICBcbiMgMDAwICAgMDAwICAwMDAgICAgICAgMDAwMCAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgICAgICAgIDAwMCAgICAgMDAwICAwMDAgICAwMDAgIDAwMDAgIDAwMCAgXG4jIDAwMDAwMDAwMCAgMDAwMDAwMCAgIDAwMCAwIDAwMCAgMDAwICAgMDAwICAwMDAwMDAwMDAgIDAwMCAgICAgICAgICAwMDAgICAgIDAwMCAgMDAwICAgMDAwICAwMDAgMCAwMDAgIFxuIyAwMDAgMCAwMDAgIDAwMCAgICAgICAwMDAgIDAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAgICAgICAgMDAwICAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAwMDAwICBcbiMgMDAwICAgMDAwICAwMDAwMDAwMCAgMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgIDAwMDAwMDAgICAgIDAwMCAgICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgXG5cbnBvc3Qub24gJ21lbnVBY3Rpb24nIChhY3Rpb24pIC0+XG4gICAgXG4gICAgc3dpdGNoIGFjdGlvblxuICAgICAgICB3aGVuICdDbGVhcicgICAgICB0aGVuIHBvc3QuZW1pdCAnY2xlYXJMb2cnXG4gICAgICAgIHdoZW4gJ1NldCBEaXIuLi4nIHRoZW4gcG9zdC50b01haW4gJ3NldFJvb3REaXInXG4gICAgICAgIFxuc2hvd092ZXJsYXkoKVxuIl19
|
238 | //# sourceURL=../coffee/window.coffee |
\ | No newline at end of file |