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, klog, koSend, onError, onFile, onMessage, onTask, openFile, post, ref, showOverlay, slash, taskDiv, tasks, title, udp, w, win;
|
11 |
|
12 | ref = require('kxk'), post = ref.post, slash = ref.slash, title = ref.title, elem = ref.elem, win = ref.win, udp = ref.udp, klog = ref.klog, $ = ref.$, _ = ref._;
|
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 | } else {
|
75 | return console.log('konrad', s);
|
76 | }
|
77 | });
|
78 |
|
79 | post.on('konradVersion', function(s) {
|
80 | var split;
|
81 | klog(process.argv[0]);
|
82 | split = s.trim().split(/\s+/);
|
83 | title = ['path'];
|
84 | if (process.argv[0].endsWith('Electron Helper') || process.argv[0].endsWith('electron.exe')) {
|
85 | title = ['version', 'path'];
|
86 | }
|
87 | return window.titlebar.setTitle({
|
88 | title: title,
|
89 | pkg: {
|
90 | version: split[0],
|
91 | path: slash.tilde(split[2])
|
92 | }
|
93 | });
|
94 | });
|
95 |
|
96 | post.on('clearLog', function() {
|
97 | $('main').innerHTML = '';
|
98 | tasks = {};
|
99 | return showOverlay();
|
100 | });
|
101 |
|
102 | taskDiv = function(opt) {
|
103 | var div, fil, main, ref1, ref2, ref3, tim;
|
104 | main = $('main');
|
105 | if (_.isEmpty(tasks)) {
|
106 | main.innerHTML = '';
|
107 | }
|
108 | if ((ref1 = tasks[opt.key]) != null) {
|
109 | ref1.remove();
|
110 | }
|
111 | div = document.createElement('div');
|
112 | tim = document.createElement('span');
|
113 | fil = document.createElement('span');
|
114 | div.classList.add('task');
|
115 | tim.classList.add('time');
|
116 | tim.innerHTML = opt.time;
|
117 | fil.classList.add((opt.file != null) && 'file' || 'message');
|
118 | fil.innerHTML = (ref2 = opt.fileHtml) != null ? ref2 : " " + opt.icon + " " + ((ref3 = opt.file) != null ? ref3 : opt.message);
|
119 | fil.onclick = function() {
|
120 | if (opt.file != null) {
|
121 | return openFile(opt.file);
|
122 | }
|
123 | };
|
124 | div.appendChild(tim);
|
125 | div.appendChild(fil);
|
126 | tasks[opt.key] = div;
|
127 | main.appendChild(div);
|
128 | return div;
|
129 | };
|
130 |
|
131 | onTask = function(s) {
|
132 | var div, ref1, ref2, ref3, source, sourceTarget, target, time;
|
133 | post.toMain('highlight');
|
134 | ref1 = s.split(' 👍 '), time = ref1[0], sourceTarget = ref1[1];
|
135 | ref2 = sourceTarget.split(' ► '), source = ref2[0], target = ref2[1];
|
136 | source = slash.tilde(source.trim());
|
137 | target = slash.tilde(target.trim());
|
138 | div = taskDiv({
|
139 | time: time,
|
140 | file: source,
|
141 | key: source,
|
142 | icon: '👍'
|
143 | });
|
144 | div.scrollIntoViewIfNeeded();
|
145 | if (slash.dir(target).startsWith(slash.tilde(slash.dir(__filename)))) {
|
146 | if (slash.file(target) === 'window.js' || ((ref3 = slash.ext(target)) === 'css' || ref3 === 'html')) {
|
147 | post.emit('menuAction', 'Reload');
|
148 | } else if (slash.file(target) === 'main.js') {
|
149 | post.toMain('Restart');
|
150 | } else {
|
151 | post.toMain('Restart konrad');
|
152 | }
|
153 | }
|
154 | return fadeOverlay();
|
155 | };
|
156 |
|
157 | onMessage = function(s) {
|
158 | var div, msg, ref1, time;
|
159 | ref1 = s.split(' 🔧 '), time = ref1[0], msg = ref1[1];
|
160 | return div = taskDiv({
|
161 | time: time,
|
162 | message: msg,
|
163 | key: 'msg',
|
164 | icon: '🔧'
|
165 | });
|
166 | };
|
167 |
|
168 | onError = function(s, html) {
|
169 | var div, fileHtml, htmls, i, j, key, lines, msg, pre, ref1, ref2, task, time;
|
170 | post.toMain('showWindow');
|
171 | post.toMain('highlight');
|
172 | for (key in tasks) {
|
173 | task = tasks[key];
|
174 | if (task.icon === '😡') {
|
175 | task.div.remove();
|
176 | delete tasks[key];
|
177 | }
|
178 | }
|
179 | lines = s.split('\n');
|
180 | if (html) {
|
181 | htmls = html.split('\n');
|
182 | fileHtml = htmls.shift().split('</span>').slice(5).join('</span>');
|
183 | }
|
184 | ref1 = lines.shift().split(' 😡 '), time = ref1[0], msg = ref1[1];
|
185 | if ((msg != null ? msg.trim : void 0) != null) {
|
186 | msg = msg.trim();
|
187 | if (msg.split(':').length >= 3) {
|
188 | msg = '';
|
189 | }
|
190 | }
|
191 | div = taskDiv({
|
192 | time: time,
|
193 | icon: '😡',
|
194 | message: msg
|
195 | });
|
196 | for (i = j = 0, ref2 = lines.length; 0 <= ref2 ? j < ref2 : j > ref2; i = 0 <= ref2 ? ++j : --j) {
|
197 | pre = document.createElement('pre');
|
198 | pre.classList.add('error');
|
199 | if (htmls[i]) {
|
200 | pre.innerHTML = htmls[i];
|
201 | } else {
|
202 | pre.textContent = lines[i];
|
203 | }
|
204 | div.appendChild(pre);
|
205 | }
|
206 | return div.scrollIntoViewIfNeeded();
|
207 | };
|
208 |
|
209 | onFile = function(s, html) {
|
210 | var div, file, fileHtml, htmls, ref1, time;
|
211 | post.toMain('showWindow');
|
212 | post.toMain('highlight');
|
213 | if (html) {
|
214 | htmls = html.split('\n');
|
215 | fileHtml = htmls.shift().split('</span>').slice(5).join('</span>');
|
216 | }
|
217 | ref1 = s.split(' 🔺 '), time = ref1[0], file = ref1[1];
|
218 | file = file.trim();
|
219 | div = taskDiv({
|
220 | time: time,
|
221 | file: file,
|
222 | key: file.split(':')[0],
|
223 | icon: '🔺',
|
224 | fileHtml: fileHtml
|
225 | });
|
226 | return div.scrollIntoViewIfNeeded();
|
227 | };
|
228 |
|
229 | post.on('menuAction', function(action) {
|
230 | switch (action) {
|
231 | case 'Clear':
|
232 | return post.emit('clearLog');
|
233 | case 'Set Dir...':
|
234 | return post.toMain('setRootDir');
|
235 | }
|
236 | });
|
237 |
|
238 | showOverlay();
|
239 |
|
240 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LmpzIiwic291cmNlUm9vdCI6Ii4uL2NvZmZlZSIsInNvdXJjZXMiOlsid2luZG93LmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7O0FBQUEsSUFBQTs7QUFRQSxNQUFxRCxPQUFBLENBQVEsS0FBUixDQUFyRCxFQUFFLGVBQUYsRUFBUSxpQkFBUixFQUFlLGlCQUFmLEVBQXNCLGVBQXRCLEVBQTRCLGFBQTVCLEVBQWlDLGFBQWpDLEVBQXNDLGVBQXRDLEVBQTRDLFNBQTVDLEVBQStDOztBQUUvQyxDQUFBLEdBQUksSUFBSSxHQUFKLENBQ0E7SUFBQSxHQUFBLEVBQVEsU0FBUjtJQUNBLEdBQUEsRUFBUSxPQUFBLENBQVEsaUJBQVIsQ0FEUjtJQUVBLElBQUEsRUFBUSxxQkFGUjtJQUdBLElBQUEsRUFBUSxvQkFIUjtDQURBOztBQVlKLE1BQUEsR0FBUzs7QUFDVCxRQUFBLEdBQVcsU0FBQyxDQUFEO0lBQ1AsSUFBRyxDQUFJLE1BQVA7UUFBbUIsTUFBQSxHQUFTLElBQUksR0FBSixDQUFRO1lBQUEsSUFBQSxFQUFLLElBQUw7U0FBUixFQUE1Qjs7V0FDQSxNQUFNLENBQUMsSUFBUCxDQUFZLEtBQUssQ0FBQyxPQUFOLENBQWMsQ0FBZCxDQUFaO0FBRk87O0FBSVgsS0FBQSxHQUFROztBQVFSLFdBQUEsR0FBYyxTQUFBO0FBRVYsUUFBQTtJQUFBLEdBQUEsR0FBTSxLQUFLLENBQUMsT0FBTixDQUFjLEtBQUssQ0FBQyxJQUFOLENBQVcsU0FBWCxFQUFzQixJQUF0QixFQUEyQixLQUEzQixFQUFpQyxXQUFqQyxDQUFkOztZQUNPLENBQUUsTUFBZixDQUFBOztJQUNBLE9BQUEsR0FBVSxJQUFBLENBQUs7UUFBQSxFQUFBLEVBQUcsU0FBSDtLQUFMO0lBQ1YsT0FBTyxDQUFDLFdBQVIsQ0FBb0IsSUFBQSxDQUFLLEtBQUwsRUFBVztRQUFBLENBQUEsS0FBQSxDQUFBLEVBQU0sTUFBTjtRQUFhLEdBQUEsRUFBSSxHQUFqQjtL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QUF1Q1YsTUFBQSxHQUFTLFNBQUMsQ0FBRCxFQUFJLElBQUo7QUFFTCxRQUFBO0lBQUEsSUFBSSxDQUFDLE1BQUwsQ0FBWSxZQUFaO0lBQ0EsSUFBSSxDQUFDLE1BQUwsQ0FBWSxXQUFaO0lBRUEsSUFBRyxJQUFIO1FBQ0ksS0FBQSxHQUFRLElBQUksQ0FBQyxLQUFMLENBQVcsSUFBWDtRQUNSLFFBQUEsR0FBVyxLQUFLLENBQUMsS0FBTixDQUFBLENBQWEsQ0FBQyxLQUFkLENBQW9CLFNBQXBCLENBQStCLFNBQUksQ0FBQyxJQUFwQyxDQUF5QyxTQUF6QyxFQUZmOztJQUlBLE9BQWUsQ0FBQyxDQUFDLEtBQUYsQ0FBUSxNQUFSLENBQWYsRUFBQyxjQUFELEVBQU87SUFDUCxJQUFBLEdBQU8sSUFBSSxDQUFDLElBQUwsQ0FBQTtJQUVQLEdBQUEsR0FBTSxPQUFBLENBQVE7UUFBQSxJQUFBLEVBQUssSUFBTDtRQUFXLElBQUEsRUFBSyxJQUFoQjtRQUFzQixHQUFBLEVBQUksSUFBSSxDQUFDLEtBQUwsQ0FBVyxHQUFYLENBQWdCLENBQUEsQ0FBQSxDQUExQztRQUE4QyxJQUFBLEVBQUssSUFBbkQ7UUFBd0QsUUFBQSxFQUFTLFFBQWpFO0tBQVI7V0FFTixHQUFHLENBQUMsc0JBQUosQ0FBQTtBQWRLOztBQXNCVCxJQUFJLENBQUMsRUFBTCxDQUFRLFlBQVIsRUFBcUIsU0FBQyxNQUFEO0FBRWpCLFlBQU8sTUFBUDtBQUFBLGFBQ1MsT0FEVDttQkFDMkIsSUFBSSxDQUFDLElBQUwsQ0FBVSxVQUFWO0FBRDNCLGFBRVMsWUFGVDttQkFFMkIsSUFBSSxDQUFDLE1BQUwsQ0FBWSxZQUFaO0FBRjNCO0FBRmlCLENBQXJCOztBQU1BLFdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIiMjI1xuMDAwICAgMDAwICAwMDAgIDAwMCAgIDAwMCAgMDAwMDAwMCAgICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgXG4wMDAgMCAwMDAgIDAwMCAgMDAwMCAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwIDAgMDAwICBcbjAwMDAwMDAwMCAgMDAwICAwMDAgMCAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAwMDAwMDAgIFxuMDAwICAgMDAwICAwMDAgIDAwMCAgMDAwMCAgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgXG4wMCAgICAgMDAgIDAwMCAgMDAwICAgMDAwICAwMDAwMDAwICAgICAwMDAwMDAwICAgMDAgICAgIDAwICBcbiMjI1xuXG57IHBvc3QsIHNsYXNoLCB0aXRsZSwgZWxlbSwgd2luLCB1ZHAsIGtsb2csICQsIF8gfSA9IHJlcXVpcmUgJ2t4aydcblxudyA9IG5ldyB3aW5cbiAgICBkaXI6ICAgIF9fZGlybmFtZVxuICAgIHBrZzogICAgcmVxdWlyZSAnLi4vcGFja2FnZS5qc29uJ1xuICAgIG1lbnU6ICAgJy4uL2NvZmZlZS9tZW51Lm5vb24nXG4gICAgaWNvbjogICAnLi4vaW1nL21lbnVAMngucG5nJ1xuICAgIFxuIyAgMDAwMDAwMCAgIDAwMDAwMDAwICAgMDAwMDAwMDAgIDAwMCAgIDAwMCAgXG4jIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAgICAgMDAwMCAgMDAwICBcbiMgMDAwICAgMDAwICAwMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAgMCAwMDAgIFxuIyAwMDAgICAwMDAgIDAwMCAgICAgICAgMDAwICAgICAgIDAwMCAgMDAwMCAgXG4jICAwMDAwMDAwICAgMDAwICAgICAgICAwMDAwMDAwMCAgMDAwICAgMDAwICBcblxua29TZW5kID0gbnVsbFxub3BlbkZpbGUgPSAoZikgLT5cbiAgICBpZiBub3Qga29TZW5kIHRoZW4ga29TZW5kID0gbmV3IHVkcCBwb3J0Ojk3NzlcbiAgICBrb1NlbmQuc2VuZCBzbGFzaC5yZXNvbHZlIGZcblxudGFza3MgPSB7fVxuXG4jICAwMDAwMDAwICAgMDAwICAgMDAwICAwMDAwMDAwMCAgMDAwMDAwMDAgICAwMDAgICAgICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgXG4jIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAgICAgMDAwICAgMDAwICAwMDAgICAgICAwMDAgICAwMDAgICAwMDAgMDAwICAgXG4jIDAwMCAgIDAwMCAgIDAwMCAwMDAgICAwMDAwMDAwICAgMDAwMDAwMCAgICAwMDAgICAgICAwMDAwMDAwMDAgICAgMDAwMDAgICAgXG4jIDAwMCAgIDAwMCAgICAgMDAwICAgICAwMDAgICAgICAgMDAwICAgMDAwICAwMDAgICAgICAwMDAgICAwMDAgICAgIDAwMCAgICAgXG4jICAwMDAwMDAwICAgICAgIDAgICAgICAwMDAwMDAwMCAgMDAwICAgMDAwICAwMDAwMDAwICAwMDAgICAwMDAgICAgIDAwMCAgICAgXG5cbnNob3dPdmVybGF5ID0gLT5cblxuICAgIGltZyA9IHNsYXNoLmZpbGVVcmwgc2xhc2guam9pbiBfX2Rpcm5hbWUsICcuLicgJ2ltZycgJ2Fib3V0LnBuZydcbiAgICAkKCcjb3ZlcmxheScpPy5yZW1vdmUoKSBcbiAgICBvdmVybGF5ID0gZWxlbSBpZDonb3ZlcmxheSdcbiAgICBvdmVybGF5LmFwcGVuZENoaWxkIGVsZW0gJ2ltZycgY2xhc3M6J2luZm8nIHNyYzppbWdcbiAgICBvdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIgJ2NsaWNrJyAoZXZlbnQpIC0+IGV2ZW50LnRhcmdldC5yZW1vdmUoKVxuICAgICQoJ21haW4nKS5hcHBlbmRDaGlsZCBvdmVybGF5XG5cbmZhZGVPdmVybGF5ID0gLT5cbiAgICBcbiAgICBzaG93T3ZlcmxheSgpXG4gICAgJCgnI292ZXJsYXknKS5jbGFzc0xpc3QuYWRkICdmYWRlLWluJ1xuICAgIFxuIyAwMDAwMDAwMCAgICAwMDAwMDAwICAgIDAwMDAwMDAgIDAwMDAwMDAwMCAgXG4jIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAgICAgICAgMDAwICAgICBcbiMgMDAwMDAwMDAgICAwMDAgICAwMDAgIDAwMDAwMDAgICAgICAwMDAgICAgIFxuIyAwMDAgICAgICAgIDAwMCAgIDAwMCAgICAgICAwMDAgICAgIDAwMCAgICAgXG4jIDAwMCAgICAgICAgIDAwMDAwMDAgICAwMDAwMDAwICAgICAgMDAwICAgICBcblxucG9zdC5vbiAna29ucmFkRXhpdCcgKHMpIC0+XG5wb3N0Lm9uICdrb25yYWRFcnJvcicgKHMsIGh0bWwpIC0+IG9uRXJyb3IgcywgaHRtbFxucG9zdC5vbiAna29ucmFkT3V0cHV0JyAocywgaHRtbCkgLT5cbiAgICBcbiAgICBpZiAgICAgIC8g8J+YoSAvLnRlc3QgcyB0aGVuIG9uRXJyb3IgICBzLCBodG1sXG4gICAgaWYgICAgICAvIPCflLogLy50ZXN0IHMgdGhlbiBvbkZpbGUgICAgcywgaHRtbFxuICAgIGVsc2UgaWYgLyDwn5GNIC8udGVzdCBzIHRoZW4gb25UYXNrICAgIHMsIGh0bWxcbiAgICBlbHNlIGlmIC8g8J+UpyAvLnRlc3QgcyB0aGVuIG9uTWVzc2FnZSBzLCBodG1sXG4gICAgZWxzZSBsb2cgJ2tvbnJhZCcgc1xuXG5wb3N0Lm9uICdrb25yYWRWZXJzaW9uJyAocykgLT5cblxuICAgIGtsb2cgcHJvY2Vzcy5hcmd2WzBdXG4gICAgc3BsaXQgPSBzLnRyaW0oKS5zcGxpdCAvXFxzKy9cbiAgICB0aXRsZSA9IFsncGF0aCddXG4gICAgaWYgcHJvY2Vzcy5hcmd2WzBdLmVuZHNXaXRoKCdFbGVjdHJvbiBIZWxwZXInKSBvciBwcm9jZXNzLmFyZ3ZbMF0uZW5kc1dpdGgoJ2VsZWN0cm9uLmV4ZScpXG4gICAgICAgIHRpdGxlID0gWyd2ZXJzaW9uJyAncGF0aCddXG4gICAgd2luZG93LnRpdGxlYmFyLnNldFRpdGxlICBcbiAgICAgICAgdGl0bGU6dGl0bGVcbiAgICAgICAgcGtnOlxuICAgICAgICAgICAgdmVyc2lvbjogc3BsaXRbMF1cbiAgICAgICAgICAgIHBhdGg6IHNsYXNoLnRpbGRlIHNwbGl0WzJdXG4gICAgXG5wb3N0Lm9uICdjbGVhckxvZycgLT4gXG4gICAgXG4gICAgJCgnbWFpbicpLmlubmVySFRNTCA9ICcnIFxuICAgIHRhc2tzID0ge30gXG4gICAgc2hvd092ZXJsYXkoKVxuICAgIFxuIyAwMDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMDAwMDAgIDAwMCAgIDAwMCAgMDAwMDAwMCAgICAwMDAgIDAwMCAgIDAwMCAgXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAwMDAgICAgICAgMDAwICAwMDAgICAwMDAgICAwMDAgIDAwMCAgMDAwICAgMDAwICBcbiMgICAgMDAwICAgICAwMDAwMDAwMDAgIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMCAgIDAwMCAgMDAwICAgMDAwIDAwMCAgIFxuIyAgICAwMDAgICAgIDAwMCAgIDAwMCAgICAgICAwMDAgIDAwMCAgMDAwICAgMDAwICAgMDAwICAwMDAgICAgIDAwMCAgICAgXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAwMDAwMDAwICAgMDAwICAgMDAwICAwMDAwMDAwICAgIDAwMCAgICAgIDAgICAgICBcblxudGFza0RpdiA9IChvcHQpIC0+XG5cbiAgICBtYWluID0kICdtYWluJ1xuICAgIGlmIF8uaXNFbXB0eSB0YXNrc1xuICAgICAgICBtYWluLmlubmVySFRNTCA9ICcnXG5cbiAgICB0YXNrc1tvcHQua2V5XT8ucmVtb3ZlKClcblxuICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgJ2RpdidcbiAgICB0aW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50ICdzcGFuJ1xuICAgIGZpbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgJ3NwYW4nXG5cbiAgICBkaXYuY2xhc3NMaXN0LmFkZCAndGFzaydcblxuICAgIHRpbS5jbGFzc0xpc3QuYWRkICd0aW1lJ1xuICAgIHRpbS5pbm5lckhUTUwgPSBvcHQudGltZVxuXG4gICAgZmlsLmNsYXNzTGlzdC5hZGQgb3B0LmZpbGU/IGFuZCAnZmlsZScgb3IgJ21lc3NhZ2UnXG4gICAgZmlsLmlubmVySFRNTCA9IG9wdC5maWxlSHRtbCA/IFwiICN7b3B0Lmljb259ICN7b3B0LmZpbGUgPyBvcHQubWVzc2FnZX1cIlxuICAgIGZpbC5vbmNsaWNrID0gLT4gb3BlbkZpbGUgb3B0LmZpbGUgaWYgb3B0LmZpbGU/XG5cbiAgICBkaXYuYXBwZW5kQ2hpbGQgdGltXG4gICAgZGl2LmFwcGVuZENoaWxkIGZpbFxuXG4gICAgdGFza3Nbb3B0LmtleV0gPSBkaXZcbiAgICBtYWluLmFwcGVuZENoaWxkIGRpdlxuXG4gICAgZGl2XG4gICAgXG4jIDAwMDAwMDAwMCAgIDAwMDAwMDAgICAgMDAwMDAwMCAgMDAwICAgMDAwXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAwMDAgICAgICAgMDAwICAwMDBcbiMgICAgMDAwICAgICAwMDAwMDAwMDAgIDAwMDAwMDAgICAwMDAwMDAwXG4jICAgIDAwMCAgICAgMDAwICAgMDAwICAgICAgIDAwMCAgMDAwICAwMDBcbiMgICAgMDAwICAgICAwMDAgICAwMDAgIDAwMDAwMDAgICAwMDAgICAwMDBcblxub25UYXNrID0gKHMpIC0+XG4gICAgXG4gICAgcG9zdC50b01haW4gJ2hpZ2hsaWdodCdcblxuICAgIFt0aW1lLCBzb3VyY2VUYXJnZXRdID0gcy5zcGxpdCAnIPCfkY0gJ1xuICAgIFtzb3VyY2UsIHRhcmdldF0gPSBzb3VyY2VUYXJnZXQuc3BsaXQgJyDilrogJ1xuICAgIFxuICAgIHNvdXJjZSA9IHNsYXNoLnRpbGRlIHNvdXJjZS50cmltKClcbiAgICB0YXJnZXQgPSBzbGFzaC50aWxkZSB0YXJnZXQudHJpbSgpXG4gICAgZGl2ID0gdGFza0RpdiB0aW1lOiB0aW1lLCBmaWxlOiBzb3VyY2UsIGtleTogc291cmNlLCBpY29uOiAn8J+RjSdcbiAgICBkaXYuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpXG4gICAgXG4gICAgaWYgc2xhc2guZGlyKHRhcmdldCkuc3RhcnRzV2l0aCBzbGFzaC50aWxkZSBzbGFzaC5kaXIgX19maWxlbmFtZVxuICAgICAgICBpZiBzbGFzaC5maWxlKHRhcmdldCkgPT0gJ3dpbmRvdy5qcycgb3Igc2xhc2guZXh0KHRhcmdldCkgaW4gWydjc3MnLCAnaHRtbCddXG4gICAgICAgICAgICBwb3N0LmVtaXQgJ21lbnVBY3Rpb24nICdSZWxvYWQnXG4gICAgICAgIGVsc2UgaWYgc2xhc2guZmlsZSh0YXJnZXQpID09ICdtYWluLmpzJ1xuICAgICAgICAgICAgcG9zdC50b01haW4gJ1Jlc3RhcnQnXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgICMga2xvZyBcInNob3VsZCByZXN0YXJ0IGtvbnJhZCAnI3tzbGFzaC5maWxlKHRhcmdldCl9J1wiLCB0YXJnZXQsIHNsYXNoLnBhdGggX19maWxlbmFtZVxuICAgICAgICAgICAgcG9zdC50b01haW4gJ1Jlc3RhcnQga29ucmFkJ1xuICAgIFxuICAgIGZhZGVPdmVybGF5KClcblxuIyAwMCAgICAgMDAgIDAwMDAwMDAwICAgMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMDAwMDAgICAwMDAwMDAwMFxuIyAwMDAgICAwMDAgIDAwMCAgICAgICAwMDAgICAgICAgMDAwICAgICAgIDAwMCAgIDAwMCAgMDAwICAgICAgICAwMDBcbiMgMDAwMDAwMDAwICAwMDAwMDAwICAgMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAwMDAwMDAgIDAwMCAgMDAwMCAgMDAwMDAwMFxuIyAwMDAgMCAwMDAgIDAwMCAgICAgICAgICAgIDAwMCAgICAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDBcbiMgMDAwICAgMDAwICAwMDAwMDAwMCAgMDAwMDAwMCAgIDAwMDAwMDAgICAwMDAgICAwMDAgICAwMDAwMDAwICAgMDAwMDAwMDBcblxub25NZXNzYWdlID0gKHMpIC0+XG5cbiAgICBbdGltZSwgbXNnXSA9IHMuc3BsaXQgJyDwn5SnICdcblxuICAgIGRpdiA9IHRhc2tEaXYgdGltZTp0aW1lLCBtZXNzYWdlOm1zZywga2V5Oidtc2cnIGljb246J/CflKcnXG4gICAgXG4jIDAwMDAwMDAwICAwMDAwMDAwMCAgIDAwMDAwMDAwICAgIDAwMDAwMDAgICAwMDAwMDAwMFxuIyAwMDAgICAgICAgMDAwICAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwXG4jIDAwMDAwMDAgICAwMDAwMDAwICAgIDAwMDAwMDAgICAgMDAwICAgMDAwICAwMDAwMDAwXG4jIDAwMCAgICAgICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAwMDBcbiMgMDAwMDAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMFxuXG5vbkVycm9yID0gKHMsIGh0bWwpIC0+XG5cbiAgICBwb3N0LnRvTWFpbiAnc2hvd1dpbmRvdydcbiAgICBwb3N0LnRvTWFpbiAnaGlnaGxpZ2h0J1xuICAgIFxuICAgIGZvciBrZXksdGFzayBvZiB0YXNrc1xuICAgICAgICBpZiB0YXNrLmljb24gPT0gJ/CfmKEnIFxuICAgICAgICAgICAgdGFzay5kaXYucmVtb3ZlKClcbiAgICAgICAgICAgIGRlbGV0ZSB0YXNrc1trZXldXG5cbiAgICBsaW5lcyA9IHMuc3BsaXQgJ1xcbidcbiAgICBpZiBodG1sXG4gICAgICAgIGh0bWxzID0gaHRtbC5zcGxpdCAnXFxuJ1xuICAgICAgICBmaWxlSHRtbCA9IGh0bWxzLnNoaWZ0KCkuc3BsaXQoJzwvc3Bhbj4nKVs1Li5dLmpvaW4gJzwvc3Bhbj4nXG4gICAgXG4gICAgW3RpbWUsIG1zZ10gPSBsaW5lcy5zaGlmdCgpLnNwbGl0ICcg8J+YoSAnXG4gICAgaWYgbXNnPy50cmltP1xuICAgICAgICBtc2cgPSBtc2cudHJpbSgpXG4gICAgICAgIGlmIG1zZy5zcGxpdCgnOicpLmxlbmd0aCA+PSAzIHRoZW4gbXNnID0gJydcblxuICAgIGRpdiA9IHRhc2tEaXYgdGltZTp0aW1lLCBpY29uOifwn5ihJyBtZXNzYWdlOm1zZ1xuXG4gICAgZm9yIGkgaW4gWzAuLi5saW5lcy5sZW5ndGhdXG4gICAgICAgIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgJ3ByZSdcbiAgICAgICAgcHJlLmNsYXNzTGlzdC5hZGQgJ2Vycm9yJ1xuICAgICAgICBpZiBodG1sc1tpXVxuICAgICAgICAgICAgcHJlLmlubmVySFRNTCA9IGh0bWxzW2ldXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHByZS50ZXh0Q29udGVudCA9IGxpbmVzW2ldXG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZCBwcmVcblxuICAgIGRpdi5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKClcblxuIyAwMDAwMDAwMCAgMDAwICAwMDAgICAgICAwMDAwMDAwMCAgXG4jIDAwMCAgICAgICAwMDAgIDAwMCAgICAgIDAwMCAgICAgICBcbiMgMDAwMDAwICAgIDAwMCAgMDAwICAgICAgMDAwMDAwMCAgIFxuIyAwMDAgICAgICAgMDAwICAwMDAgICAgICAwMDAgICAgICAgXG4jIDAwMCAgICAgICAwMDAgIDAwMDAwMDAgIDAwMDAwMDAwICBcblxub25GaWxlID0gKHMsIGh0bWwpIC0+XG5cbiAgICBwb3N0LnRvTWFpbiAnc2hvd1dpbmRvdydcbiAgICBwb3N0LnRvTWFpbiAnaGlnaGxpZ2h0J1xuICAgIFxuICAgIGlmIGh0bWxcbiAgICAgICAgaHRtbHMgPSBodG1sLnNwbGl0ICdcXG4nXG4gICAgICAgIGZpbGVIdG1sID0gaHRtbHMuc2hpZnQoKS5zcGxpdCgnPC9zcGFuPicpWzUuLl0uam9pbiAnPC9zcGFuPidcbiAgICBcbiAgICBbdGltZSwgZmlsZV0gPSBzLnNwbGl0ICcg8J+UuiAnXG4gICAgZmlsZSA9IGZpbGUudHJpbSgpXG5cbiAgICBkaXYgPSB0YXNrRGl2IHRpbWU6dGltZSwgZmlsZTpmaWxlLCBrZXk6ZmlsZS5zcGxpdCgnOicpWzBdLCBpY29uOifwn5S6JyBmaWxlSHRtbDpmaWxlSHRtbFxuXG4gICAgZGl2LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKVxuICAgIFxuIyAwMCAgICAgMDAgIDAwMDAwMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgIDAwMDAwMDAgICAgMDAwMDAwMCAgMDAwMDAwMDAwICAwMDAgICAwMDAwMDAwICAgMDAwICAgMDAwICBcbiMgMDAwICAgMDAwICAwMDAgICAgICAgMDAwMCAgMDAwICAwMDAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAgICAgICAgIDAwMCAgICAgMDAwICAwMDAgICAwMDAgIDAwMDAgIDAwMCAgXG4jIDAwMDAwMDAwMCAgMDAwMDAwMCAgIDAwMCAwIDAwMCAgMDAwICAgMDAwICAwMDAwMDAwMDAgIDAwMCAgICAgICAgICAwMDAgICAgIDAwMCAgMDAwICAgMDAwICAwMDAgMCAwMDAgIFxuIyAwMDAgMCAwMDAgIDAwMCAgICAgICAwMDAgIDAwMDAgIDAwMCAgIDAwMCAgMDAwICAgMDAwICAwMDAgICAgICAgICAgMDAwICAgICAwMDAgIDAwMCAgIDAwMCAgMDAwICAwMDAwICBcbiMgMDAwICAgMDAwICAwMDAwMDAwMCAgMDAwICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgIDAwMDAwMDAgICAgIDAwMCAgICAgMDAwICAgMDAwMDAwMCAgIDAwMCAgIDAwMCAgXG5cbnBvc3Qub24gJ21lbnVBY3Rpb24nIChhY3Rpb24pIC0+XG4gICAgXG4gICAgc3dpdGNoIGFjdGlvblxuICAgICAgICB3aGVuICdDbGVhcicgICAgICB0aGVuIHBvc3QuZW1pdCAnY2xlYXJMb2cnXG4gICAgICAgIHdoZW4gJ1NldCBEaXIuLi4nIHRoZW4gcG9zdC50b01haW4gJ3NldFJvb3REaXInXG4gICAgICAgIFxuc2hvd092ZXJsYXkoKVxuIl19
|
241 | //# sourceURL=../coffee/window.coffee |
\ | No newline at end of file |